Я создаю приложение запуска, и я хотел бы показать средство выбора запуска по умолчанию вручную.
Я уже нашел и попробовал это , но это не идеально, так как я не могу выбрать ВСЕГДА сразу.После выбора программы запуска мне нужно нажать кнопку «Домой», чтобы иметь возможность выбрать ВСЕГДА.
Это мой код:
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 Launcher и Poco Launcherв состоянии сделать это, но я не смог найти решение, и, к сожалению, нет открытого запуска с той же функциональностью.Кто-нибудь может мне помочь с этим?