系统方向学习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 去掉未知来源弹窗 默认授予安装未知来源权限相关推荐
- android 10.0 去掉未知来源弹窗 默认授予安装未知来源权限
在8.1以后不再通过一个未知来源的布尔值来开启未知来源权限了,需要通过授予权限来默认安装第三方权限,否则会弹出 授权安装第三方app权限同意后才能继续安装显得有些麻烦 1.在AppOpsManager ...
- android 11.0 去掉未知来源弹窗 默认授予安装未知来源权限
在11.0原生系统中对于安装第三方app会弹出未知来源弹窗确认以后才允许安装 这样显得有些麻烦,所以默认是去掉安装未来来源的 要授予未知来源权限的 1.在AppOpsManager.java中授予未知 ...
- Android9--android 10.0 去掉未知来源弹窗 默认授予安装未知来源权限
在9.0 以前的设备中,安装未来来源的权限开关 可以在SettingsProvider.app中的 DateHelper.java中通过一个config.xml中的 开关打开 就可以了 但是9.0以后 ...
- Android 10.0去掉前置摄像头闪光灯功能
在做展讯平板开发的时候,突然发现前置摄像头闪光灯打开时,拍照会白屏一下,然后拍照保存到相册 ,应该是闪光灯的bug.鉴于Camera2有点难调 所以就觉得前置摄像头去掉闪光灯功能 Camera2 ap ...
- Android 10.0增加低电量弹窗
在做定制化开发中,对于低电量提醒的功能,系统会在状态栏中弹出通知进行提示,但是如果隐藏了状态栏 就看不到提示了 所以客户要求增加个低电量弹窗功能 发现在SystemUI里面.发现SystemUI涵盖的 ...
- 华为内测基于Android 10.0的EMUI 10系统;2019年Q1真无线耳机市场份额,苹果占半壁江山……...
关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...
- 华为EMUI 10系统内测截图曝光:基于Android 10.0
日前有消息称,华为正在内测基于Android 10.0系统的EMUI 10系统,该系统不仅在内核方面得以升级,更会内置全套谷歌GMS套件. 从目前流出的截图来看,内测机型仅限今年上半年推出的旗舰产品华 ...
- android 10.0系统 跳转 使用WPS打开文档
android 10.0系统 跳转 使用WPS打开文档 1.AndroidManifest.xml配置 <provider android:name="android.support. ...
- Android 10.0之后系统获取不到IMEI和UUID解决办法
Android 10.0以后版本无法通过 tm.getDeviceId();获取,所以要通过androidId来代表唯一性,如下: TelephonyManager tm = (TelephonyMa ...
最新文章
- Oracle 小知识点
- spring-boot项目打包时候出现boot-inf文件夹的问题
- 三, for循环----文件对象-----函数基础------模块基础
- 华为手表用鸿蒙了吗,华为鸿蒙都2.0了,手机还不能用吗?
- C# 数据库存储过程的讲解应用
- How to connect iOS simulator to Chrome for debugging
- 【树莓派】【网摘】树莓派与XBMC及Kodi、LibreELEC插件(三)
- 【chorme插件开发】第一节:chrome内核浏览器插件开发的说明
- multism中ui和uo应该怎么表示_Excel中VBA程序基本语法之强大的数组,了解数组的功能...
- 手把手教你安装Sketch破解版和measure插件
- 弹弹堂手游语音服务器怎么连接,腾讯弹弹堂手游空间怎么进去 互动玩法攻略介绍...
- Nodejs 获取本机IP地址
- DEA数据包络分析----(投入、中间变量及产出)分期望与非期望讨论第一篇
- 39 个奇葩代码注释,看完笑哭了。。。
- alien skin ExposureX8胶片插件
- android studio编写阿里云物联网APP的基本步骤(附CSDN视频教程链接)
- python程序设计搜题软件_智慧职教云课堂APPPython程序设计(常州工业职业技术学院)期末考试搜题公众号答案...
- 星起航:抖音小店如何提升店铺复购率
- 关于云音乐数据治理的实践与思考
- JS Uncaught TypeError: xxx is not a constructor 问题解析