其他分享
首页 > 其他分享> > android – 如何调出设置的默认启动器提示符?

android – 如何调出设置的默认启动器提示符?

作者:互联网

我想检测我的启动器应用程序是否是默认启动器,如果没有提示让用户选择我的应用程序作为默认启动器.我面临的问题是提示出现时没有“Just Once”和“Always”选项.此外,在我的启动器应用程序上选择不会设置默认值.

在我的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);

如何显示ALWAYS按钮,以及如何设置实际的默认启动器设置.先感谢您!

解决方法:

The issue I am facing is that the prompt comes up without the options “Just Once” and “Always”.

createChooser()正在导致 – 这是为一次性选择器设计的,没有选项可以设置默认值.删除你的createChooser()调用,只使用你构造的Intent.如果没有默认启动器,则用户将获得具有“Just Once”和“Always”选项的标准选择器.

但请注意,如果另一个启动器是默认启动器,那么您的Intent将只路由到该启动器.在这种情况下,您无法做任何事情,除了为用户提供指导以进入“设置”并删除该应用的默认关联.

标签:android,android-intent,android-launcher
来源: https://codeday.me/bug/20190612/1223721.html