小弟初入Android开发,第一个Android项目中遇到一个问题:跳转“未知应用权限界面”时,发现不知如何才能做到只显示当前应用的选项,其他应用的设置项不要显示出来,不然太多了用户都很难找,以下这张图是目前跳转到“未知应用权限界面”,跳转后显示了所有的应用设置项,都不好找当前应用的设置项
以下是小弟跳转“未知应用权限界面”的代码,请问各位高手,该怎么改才能做到我想要的效果    /**
     * 开启设置安装未知来源应用权限界面
     *
     * @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("请开启未知应用安装权限");
    }

解决方案 »

  1.   

    刚贴出图片就在度娘上找到了我想要的答案,特别感谢这位大神共享的资料,这里我也分享出来,让跟我一样下新手遇到问题能更容易找到答案:
    https://blog.csdn.net/feibendexiaoma/article/details/80093354以下我修改后的代码和效果效果图:
    修改后的代码(跳转“安装未知应用权限界面”只显示当前应用的设置项):
        /**
         * 开启设置安装未知来源应用权限界面
         *
         * @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("请开启未知应用安装权限");
        }