有没有一种方法可以重新启动用户为意图选择默认活动?例如,用户选择他的默认主页APK,我希望他再次重新考虑自己的选择。

我知道如何在2.1和之前这样做,但是现在有办法在2.2上做到这一点吗?

著名的家庭切换器也做了类似的事情,因此由于Google团队而不再使用2.2

有帮助吗?

解决方案

例如,用户选择他的默认主页APK,我希望他再次重新考虑自己的选择。

这是不再可能的,除非您的应用程序是首选的应用程序。然后,我认为您可以使用 clearPackagePreferredActivities() 将自己视为首选。

换句话说,欢迎您影响自己的应用程序,但不欢迎您影响其他应用程序。

其他提示

这就是我表示活动选择对话框的方式:它启动了“家庭”应用程序的Android默认分解性。

Intent selector = new Intent("android.intent.action.MAIN");
selector.addCategory("android.intent.category.HOME");
selector.setComponent(new ComponentName("android", "com.android.internal.app.ResolverActivity"));

startActivity(selector);

上面的代码适用于我的2.2启用平板电脑。执行后,它将显示“完整的操作:”对话框与列表中的所有可能的家庭应用程序。


一种检测当前设置的方法,您可以询问所有首选活动。调用.getPreferredActivities(...)时,列表“过滤器”和“ Comp”包含数据。

过滤器 - 包含意图过滤数据,您可以查询它是什么类型的数据。

comps -toctians如果意图滤波器匹配,则将称为组件

这样,您可以检查您的应用程序是否是用户首选的当前“ HOME”应用程序集。

List<IntentFilter> filters = new ArrayList<IntentFilter>();
List<ComponentName> comps= new ArrayList<ComponentName>();
getPackageManager().getPreferredActivities(filters, comps, null);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top