有没有办法重新启动用户为意图选择默认活动?例如,用户选择他的默认主页apk,我希望他再次重新考虑他的选择。
我知道如何在2.1之前和之前做到这一点,但现在有没有办法在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()
删除自己作为首选。
换句话说,欢迎您影响自己的应用,但不欢迎您影响其他应用。