Я хочу определить, является ли мое приложение для запуска программой запуска по умолчанию, и если вы не вызываете приглашение, чтобы пользователь выбирал мое приложение в качестве пусковой установки по умолчанию. Проблема, с которой я столкнулся, заключается в том, что приглашение появляется без опций «Just Once» и «Always». Кроме того, при выборе в моем приложении launcher не задано значение по умолчанию.Как вызвать подсказку запуска запуска по умолчанию?
В моем onCreate У меня есть следующая проверка, чтобы проверить, является ли мое приложение стандартной установкой по умолчанию, а затем я запускаю диалог с намерением, чтобы пользователь мог выбрать мое приложение в качестве пусковой установки по умолчанию.
if (!isMyAppLauncherDefault()) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(Intent.createChooser(intent, "Set as default to enable Kiosk Mode"));
}
Вот мой метод для проверки, если мое приложение программу запуска по умолчанию
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();
// You can use name of your package here as third argument
packageManager.getPreferredActivities(filters, activities, null);
for (ComponentName activity : activities) {
if (myPackageName.equals(activity.getPackageName())) {
return true;
}
}
return false;
}
Примечание: Я попытался изменить то, как я запускаю мое намерение (см фрагмент кода ниже). Но тогда пусковая установка вообще не появляется. Ничего не произошло.
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Как я могу получить кнопку ВСЕГДА отображать, и как я могу установить фактические параметры по умолчанию запуска. Заранее спасибо!
См. Http://stackoverflow.com/questions/12780820/cannot-make-startactivity-with-chooser-asking-just-once-per-app –