以编程方式重置默认启动器

时间:2018-08-09 13:34:26

标签: android android-intent android-launcher kiosk-mode

正在使用将自己设置为默认启动器的家长控制应用程序(通过向用户展示打开选择器并始终选择)。用户可以通过单击操作栏上的退出图标来退出应用程序。

退出后,它应该重置默认启动器,而不会向用户显示选择器屏幕。

如何将某个应用设置为过去由用户批准的默认启动器? Playstore中的某些应用已经可以执行此操作。

1 个答案:

答案 0 :(得分:0)

不是理想的解决方案。但是,这可能有助于解决问题。

  

检查您的应用程序是否为默认启动器:

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;
}  
  

提示用户选择其默认启动器作为您的启动器:

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);
}

参考-How to set default app launcher programmatically?