Решение:
На самом деле это возможно с небольшим обходным путем:
Создайте пустой Activity
, который действует как пусковая установка с именем FakeLauncherActivity
. Добавьте его в свой манифест как компонент disabled:
<activity
android:name="com.path.to.your.FakeLauncherActivity"
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>
Проверьте, является ли желаемая активность запуска по умолчанию.
Если нет, предложите пользователю выбрать предпочтительную активность запуска, например:
public static void resetPreferredLauncherAndOpenChooser(Context context) {
PackageManager packageManager = context.getPackageManager();
ComponentName componentName = new ComponentName(context, com.path.to.your.FakeLauncherActivity.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);
}
Этот метод временно включает FakeLauncherActivity
, что приводит к изменению набора доступных действий лаунчера, что вынуждает Android забыть лаунчер по умолчанию. Вы увидите что-то вроде...
521-735/system_process I/PackageManager﹕ Result set changed, dropping preferred activity for Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 } type null
... в вашем журнале.
Затем метод просто открывает средство запуска, где вы можете увидеть все установленные средства запуска и кнопки «Всегда» / «Только один раз». Наконец, метод снова отключает FakeLauncherActivity
, чтобы он не отображался в списке.
Вы можете повторять это так часто, как хотите, и позволять пользователю продолжать работу только в том случае, если желаемая активность запуска установлена по умолчанию.
Источник: Получено отсюда
person
Ümañg ßürmån
schedule
22.10.2018