Я создаю приложение launcher (kiosk), которое будет загружаться через google. При первой установке этого приложения пользователь может выбрать, какой пусковой установщик (шахта или запас) будет по умолчанию. Я пытаюсь выполнить это вручную, если пользователь не делает мое приложение пусковой установкой по умолчанию. Я хочу, чтобы пользователь был вынужден выбирать ALWAYS вместо JUST ONCE, когда это диалоговое окно появляется, иначе диалог будет периодически появляться с дружеским сообщением. Это то, что я пытался сделать до сих пор.
Я создал метод проверки, если мое приложение по умолчанию
/**
* method checks to see if app is currently set as default launcher
* @return boolean true means currently set as default, otherwise false
*/
private boolean isMyAppLauncherDefault() {
final IntentFilter filter = new IntentFilter(Intent.ACTION_MAIN);
filter.addCategory(Intent.CATEGORY_HOME);
List<IntentFilter> filters = new ArrayList<IntentFilter>();
filters.add(filter);
final String myPackageName = getPackageName();
List<ComponentName> activities = new ArrayList<ComponentName>();
final PackageManager packageManager = (PackageManager) getPackageManager();
packageManager.getPreferredActivities(filters, activities, null);
for (ComponentName activity : activities) {
if (myPackageName.equals(activity.getPackageName())) {
return true;
}
}
return false;
}
Затем я делаю попытку запуска выбора
/**
* method starts an intent that will bring up a prompt for the user
* to select their default launcher. It comes up each time it is
* detected that our app is not the default launcher
*/
private void launchAppChooser() {
Log.d(TAG, "launchAppChooser()");
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
Когда я это делаю, я не получаю выбор между моим приложением и пусковой установкой. Я попытался использовать startActivity(Intent.createChooser(intent, "Please set launcher settings to ALWAYS"));
, и я получаю выбор между моим приложением и пусковой установкой, однако я не получаю опции ВСЕГДА или ТОЛЬКО ОДИН РАЗ.
Я могу создать настраиваемый диалог для этого вместо запуска выбора, но мне нужно знать, как программно запускать программу запуска приложений по умолчанию. Спасибо заранее!