本人初入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("请开启未知应用安装权限");
}
网友评论