【发布时间】:2019-07-07 11:41:57
【问题描述】:
我正在创建一个启动器应用程序,我想手动显示默认启动器选择器。
我已经找到并尝试了this,但这并不完美,因为我无法立即选择总是。选择启动器后,我需要按主页按钮才能选择始终。
这是我的代码:
public static void resetPreferredLauncherAndOpenChooser(Context context) {
PackageManager packageManager = context.getPackageManager();
ComponentName componentName = new ComponentName(context, DefaultLauncherHelperActivity.class);
packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
Intent selector = new Intent(Intent.ACTION_MAIN);
selector.addCategory(Intent.CATEGORY_HOME);
selector.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(selector);
packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, PackageManager.DONT_KILL_APP);
}
这里是清单:
<activity
android:name=".activities.MainActivity"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.HOME"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".activities.DefaultLauncherHelperActivity"
android:enabled="false">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
这是我得到的(左)与我想要实现的(右)
必须有一种方法,因为 Microsoft 的启动器和 poco 启动器能够做到这一点,但我找不到解决方案,不幸的是没有具有相同功能的开源启动器。谁能帮我解决这个问题?
【问题讨论】:
-
这是我已经在做的,但它不起作用。