清除和设置默认的主应用程序
Nova到底是如何做到这一点的?我实际上是在尝试做完全相同的事情:为用户提供一个按钮,用户可以按下以清除并选择新的默认启动器。
我能够获取默认应用名称并显示它:
private String getPrefered(Intent i) {
PackageManager pm = this.getActivity().getPackageManager();
final ResolveInfo mInfo = pm.resolveActivity(i, 0);
return (String) pm.getApplicationLabel(mInfo.activityInfo.applicationInfo);
}
在哪里Intent i
Intent home = new Intent("android.intent.action.MAIN");
home.addCategory("android.intent.category.HOME");
然后我调用系统 ResolveActivity,
private void makePrefered() {
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);
}
选取器出现并正常运行,但它实际上并未设置或清除任何值。在调试它时,似乎我错过了一些额外的东西?当我调用该方法时,我收到以下日志消息,makePrefered
I/ActivityManager( 602): START {act=android.intent.action.MAIN cat=[android.intent.category.HOME] cmp=android/com.android.internal.app.ResolverActivity u=0} from pid 22641
但是,当我使用Nova实现时,我看到所有这些,
I/PackageManager( 602): Result set changed, dropping preferred activity for Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 (has extras) } type null
I/ActivityManager( 602): START {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=android/com.android.internal.app.ResolverActivity (has extras) u=0} from pid 22905
I/ActivityManager( 602): START {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=com.mycolorscreen.canvas/.Launcher (has extras) u=0} from pid 22905
- 我怎样才能进入那里,看看与该捆绑包一起发送的内容?
- 如何清除首选应用?不要告诉我你不能,我已经看到了足够多的答案。Nova做到了,并且完全按照我想要的方式去做。