重新提示选择默认活动

时间:2010-10-19 18:10:47

标签: android user-preferences

有没有办法重新启动用户为意图选择默认活动?例如,用户选择他的默认主页apk,我希望他再次重新考虑他的选择。

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

着名家庭切换器,做类似的事情,由于谷歌团队不再适用于2.2

2 个答案:

答案 0 :(得分:1)

这就是我代表Activity选择对话框的方式: 它为“HOME”应用程序启动Android默认的ResolverActivity。

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平板电脑。 执行时,它会显示“Complete Actions with:”对话框,其中包含列表中所有可能的Home应用程序。


一种检测默认情况下当前设置的方法,您可以要求所有首选活动。调用.getPreferredActivities(...)时,列表“filters”和“comps”包含数据。

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

comps - 如果意图过滤器匹配

,则会调用将被调用的组件

通过这种方式,您可以检查您的应用程序是否是用户首选的当前“主页”应用程序。

List<IntentFilter> filters = new ArrayList<IntentFilter>();
List<ComponentName> comps= new ArrayList<ComponentName>();
getPackageManager().getPreferredActivities(filters, comps, null);

答案 1 :(得分:0)

  

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

这是不可能的,除非您的应用是首选应用。然后,我认为您可以使用clearPackagePreferredActivities()删除自己作为首选。

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