首页 > 解决方案 > 以编程方式重置默认启动器

问题描述

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

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

如何将某个应用设置为过去用户批准的默认启动器?Playstore 中的一些应用程序已经能够做到这一点。

标签: androidandroid-intentandroid-launcherkiosk-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();

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

参考 -如何以编程方式设置默认应用启动器?


推荐阅读