系统方向学习9--android 10.0 去掉未知来源弹窗 默认授予安装未知来源权限
Posted 怀化纱厂球迷
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统方向学习9--android 10.0 去掉未知来源弹窗 默认授予安装未知来源权限相关的知识,希望对你有一定的参考价值。
活动地址:CSDN21天学习挑战赛
最近跟着CSDN大佬,参与一个 21天打卡的活动
Android framework开发者带你参加21天学习挑战赛活动_安卓兼职framework应用工程师的博客-CSDN博客
今天学习的
android 10.0 去掉未知来源弹窗 默认授予安装未知来源权限_安卓兼职framework应用工程师的博客-CSDN博客_android 未知来源权限
在9.0 以前的设备中,安装未来来源的权限开关 可以在SettingsProvider.app中的
DateHelper.java中通过一个config.xml中的 开关打开 就可以了 但是9.0以后 就不行了
需要在AppOpsManager.java中给与权限
接下来看下源码分析问题
路径:frameworks/base/core/java/android/app/AppOpsManager.java
其中代码里面有这么一句
AppOpsManager.MODE_DEFAULT, // OP_REQUEST_INSTALL_PACKAGES
把它修改成
AppOpsManager.MODE_ALLOWED, // OP_REQUEST_INSTALL_PACKAGES
然后,在framework 中PackageInstaller的app中修改,这里处理整个安装app的过程
安装之前会判断安装权限什么的 主要由PackageInstallerActivity.java来处理
径:frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java
分析PackageInstallerActivity.java 源码
protected void onCreate(Bundle icicle)
getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
......
checkIfAllowedAndInitiateInstall();
// 安装前检查是否有权限
private void checkIfAllowedAndInitiateInstall()
.....
if (mAllowUnknownSources || !isInstallRequestFromUnknownSource(getIntent()))
initiateInstall();
else
.....
else
// 检查如果未知来源进入
handleUnknownSources();
private void handleUnknownSources()
if (mOriginatingPackage == null)
Log.i(TAG, "No source found for package " + mPkgInfo.packageName);
showDialogInner(DLG_ANONYMOUS_SOURCE);
return;
。。。。。
/**
* Create a new dialog.
*
* @param id The id of the dialog (determines dialog type)
*
* @return The dialog
*/
private DialogFragment createDialog(int id)
switch (id)
case DLG_PACKAGE_ERROR:
return SimpleErrorDialog.newInstance(R.string.Parse_error_dlg_text);
//省略一堆代码
case DLG_EXTERNAL_SOURCE_BLOCKED:
return ExternalSourcesBlockedDialog.newInstance(mOriginatingPackage);
case DLG_ANONYMOUS_SOURCE:
return AnonymousSourceDialog.newInstance();
break;
return null;
case DLG_ANONYMOUS_SOURCE 这里就会弹出未知来源弹窗
所以默认给与权限就这样修改:
修改 如下:
case DLG_ANONYMOUS_SOURCE:
//去掉弹出AnonymousSourceDialog对话框 默认安装
- return AnonymousSourceDialog.newInstance();
+ mAllowUnknownSources = true;
+ initiateInstall();
+ break;
+ //return AnonymousSourceDialog.newInstance();
return null;
以上是关于系统方向学习9--android 10.0 去掉未知来源弹窗 默认授予安装未知来源权限的主要内容,如果未能解决你的问题,请参考以下文章
系统方向学习9--android 10.0 去掉未知来源弹窗 默认授予安装未知来源权限
系统方向学习9--android 10.0 去掉未知来源弹窗 默认授予安装未知来源权限
系统方向学习总结2--Android 10.0 SystemUI默认去掉底部导航栏的三种方法
系统方向学习总结2--Android 10.0 SystemUI默认去掉底部导航栏的三种方法