美文网首页
Android 跳转“安装未知应用权限界面”,并且只显示当前应用

Android 跳转“安装未知应用权限界面”,并且只显示当前应用

作者: 7b7d23d16ab5 | 来源:发表于2019-02-02 14:06 被阅读6次

    本人初入Android开发,第一个Android项目中遇到一个问题:跳转“安装未知应用权限界面”时,发现不知如何才能做到只显示当前应用的选项,其他应用的设置项不要显示出来,不然太多了用户都很难找,

    以下这张图是目前跳转到“安装未知应用权限界面”,跳转后显示了所有的应用设置项,都不好找当前应用的设置项


    source.jpg

    以下是本人跳转“未知应用权限界面”的代码

    /**
    
    * 开启设置安装未知来源应用权限界面
    
    *
    
    * @param context
    
    */
    
    public static void startInstallPermissionSettingActivity(Context context) {
    
    if (context == null) {
    
    return;
    
    }
    
    Intent intent = new Intent();
    
    if (Build.VERSION.SDK_INT >= 26) {
    
    intent.setAction(android.provider.Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
    
    }else {
    
    intent.setAction(android.provider.Settings.ACTION_SECURITY_SETTINGS);
    
    }
    
    ((Activity) context).startActivityForResult(intent, REQUEST_CODE_INSTALL_SETTING_UNKNOW_APP);
    
    ToastUtils.showLong("请开启未知应用安装权限");
    
    }
    

    以下是小弟后来在度娘上找到的解决方案:

    先贴出答案来源,感谢以下那位助我找到答案的大神,也分享给各位可能跟我一样遇到问题的朋友:

    https://blog.csdn.net/feibendexiaoma/article/details/80093354

    以下便是本人的修改后的效果图和代码

    效果图:


    source.png

    修改后的代码:

        /**
         * 开启设置安装未知来源应用权限界面
         *
         * @param context
         */
        //@RequiresApi (api = Build.VERSION_CODES.O)
        public static void startInstallPermissionSettingActivity(Context context) {
            if (context == null) {
                return;
            }
            Intent intent = new Intent();
            //获取当前apk包URI,并设置到intent中(这一步设置,可让“未知应用权限设置界面”只显示当前应用的设置项)
            Uri packageURI = Uri.parse("package:"+context.getPackageName());
            intent.setData(packageURI);
            //设置不同版本跳转未知应用的动作
            if (Build.VERSION.SDK_INT >= 26) {
                //intent = new Intent(android.provider.Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES,packageURI);
                intent.setAction(android.provider.Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
            }else {
                intent.setAction(android.provider.Settings.ACTION_SECURITY_SETTINGS);
            }
            //Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
            ((Activity) context).startActivityForResult(intent, REQUEST_CODE_INSTALL_SETTING_UNKNOW_APP);
            ToastUtils.showLong("请开启未知应用安装权限");
        }
    

    相关文章

      网友评论

          本文标题:Android 跳转“安装未知应用权限界面”,并且只显示当前应用

          本文链接:https://www.haomeiwen.com/subject/sfussqtx.html