我想列出应用(具有相同的意图过滤器)。我能够通过向活动添加意图过滤器来实现这一目标
<activity
android:name=".Activities.MainActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustNothing">
<intent-filter>
<action android:name="com.example.identifier" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="isApp" />
</intent-filter>
</activity>
我可以使用
检索具有此意图的所有应用 String uri = "isApp:";
Intent intent = new Intent("com.example.identifier",
Uri.parse(uri));
PackageManager manager = getPackageManager();
List<ResolveInfo> list = manager.queryIntentActivities(intent, 0);
但是,这会在使用此片段在intentChoose中显示时启动活动:
Intent zoneIntent = new Intent("com.example.identifier",
Uri.parse(uri));
Intent openInChooser = Intent.createChooser(zoneIntent, "Complete Action with").setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(openInChooser);
但是我想要这个叫广播接收器。所以,我将意图移到AndroidManifest.xml中的广播接收器,如:
<receiver
android:name=".ExampleReceiver"
android:enabled="true">
<intent-filter>
<action android:name="com.example.identifier" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="isApp" />
</intent-filter>
</receiver>
并且返回具有此意图的应用程序数量的代码段现在返回0,即使应用程序仍在此设备上也是如此。这可以通过广播接收器完成,还是应该考虑采用另一种方法。感谢。
答案 0 :(得分:1)
致电Activity
只会返回BroadcastReceiver
。它不会返回BroadcastReceiver
。如果您想使用queryBroadcastReceivers()
s执行此操作,则需要拨打@application.route('/locale/<locale>/redirect_to/<path:redirect_to>/')
。