【发布时间】:2023-04-05 09:55:01
【问题描述】:
对于我的一生,我已经与这种隐含的意图斗争了 2 多天了。我正在尝试使用 startActivity(intent) 隐式启动一个活动,但我一直收到“没有找到处理意图的活动”,我已按照 android 开发人员网站上关于如何创建和处理隐式意图的说明进行操作,并搜索了网络包括很多关于stackoverflow的帖子,但问题仍然存在。现在是时候写一些代码了:
组件 A - 触发隐式意图
Intent intent = new Intent();
//intent.setFlags(Intent.FLAG_EXCLUDE_STOPPED_PACKAGES);
intent.setAction(AppConstants.ACTION_VIEW_OUTLET);
//intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.withAppendedPath(OutletsContentProvider.CONTENT_URI,String.valueOf(outletID)));
intent.addCategory(Intent.CATEGORY_DEFAULT);
PackageManager pm = getPackageManager();
ComponentName cn = intent.resolveActivity(pm);
if(cn != null){
startActivity(intent);
Log.i(TAG, "Intent sent with action :" + intent.getAction());
Log.i(TAG, "Intent sent with data :" + intent.getDataString());
}
Android Manifest(与组件 A 在同一应用中)
<activity
android:name=".OutletDetailsActivity"
android:label="@string/title_activity_outlet_details">
<intent-filter>
<data android:scheme="content" />
<action android:name="com.synkron.pushforshawarma.ACTION_VIEW_OUTLET" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
我做错了什么?我在使用广播意图方面取得了巨大的成功,但在这种情况下我不想使用广播/接收器。
【问题讨论】:
-
你拥有的那些日志的输出是什么?
-
06-22 11:18:54.187:E/AndroidRuntime(18813):致命异常:主要 06-22 11:18:54.187:E/AndroidRuntime(18813):进程:com.synkron。 pushforshawarma, PID: 18813 06-22 11:18:54.187: E/AndroidRuntime(18813): android.content.ActivityNotFoundException: 找不到处理 Intent { act=com.synkron.pushforshawarma.ACTION_VIEW_OUTLET cat=[android.intent. category.DEFAULT] dat=content://com.synkron.pushforshawarma.contentproviders.OutletsContentProvider/outlets/3 } 06-22 11:18:54.187: E/AndroidRuntime(18813): at android.app.Instrumentation.checkStartActivityResult(Instrumentation .java:1781) 06
-
我的意思是您发布的代码中的日志。打印操作和数据字符串的位置。
-
06-22 11:30:04.561:I/OutletListingsActivity(3046):意图发送操作:com.synkron.pushforshawarma.ACTION_VIEW_OUTLET 06-22 11:30:04.561:I/OutletListingsActivity(3046 ): Intent 与数据一起发送:content://com.synkron.pushforshawarma.contentproviders.OutletsContentProvider/outlets/3
-
这样你就有了。 logcat 中对应于 Log.i 调用的日志条目
标签: android android-intent implicit