0

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

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

由于谷歌团队,做了类似事情的 Famous Home Switcher 不再适用于 2.2

4

2 回答 2

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


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

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

comps - 包含在意图过滤器匹配时将被调用的组件

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

List<IntentFilter> filters = new ArrayList<IntentFilter>();
List<ComponentName> comps= new ArrayList<ComponentName>();
getPackageManager().getPreferredActivities(filters, comps, null);
于 2011-07-13T19:27:55.637 回答
0

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

这不再可能,除非您的应用程序是首选应用程序。那么,我想你可以用clearPackagePreferredActivities()删除自己作为首选。

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

于 2010-10-19T19:18:58.973 回答