Android8.0允许安装未知来源权限(更新版本安装APK)

android.permission.REQUEST_INSTALL_PACKAGES

1) res中建一个目录:xml

新建update_apk_paths.xml

<?xml version="1.0" encoding="utf-8"?>

<paths xmlns:android="http://schemas.android.com/apk/res/android">

        <external-path name="downloadFile" path="jyappdownload/" />

        <external-path name="external_storage_root" path="." />

</paths>

2)java下包名更路径中 新建UpdateApkFileProvider.java

public class UpdateApkFileProvider extends FileProvider {

}

3) AndroidManifest.xml 中配置

配置8.0权限

<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

provider

<provider android:name=".UpdateApkFileProvider" android:authorities="${applicationId}.update.provider"  android:exported="false" android:grantUriPermissions="true">

<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/update_apk_paths" />

</provider>

4)使用

/** * 判断是否是8.0,8.0需要处理未知应用来源权限问题,否则直接安装 */

public void checkIsAndroidO() {

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

        boolean b = mContext.getPackageManager().canRequestPackageInstalls();

       if (b) {

            installAPk(mContext, downLoadfile);//安装应用的逻辑

       } else {

            Activity activity = AppDroid.getInstance().uiStateHelper.getCurrentActivity().get(); //请求安装未知应用来源的权限

            ActivityCompat.requestPermissions(activity, new String[]   {Manifest.permission.REQUEST_INSTALL_PACKAGES}, INSTALL_PACKAGES_REQUESTCODE);

          }  

  } else {

         installAPk(mContext, downLoadfile);

  }

}


参考如下:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,736评论 0 3
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,638评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,759评论 0 17
  • 在沉默和失望的不断积累下,我终于结束了上一段爱情。伤口很深很宽,甚至可以看到骨头。 我懂你有苦衷,我理解你有难处,...
    治愈里阅读 627评论 0 0
  • 之前用Swift写了一个App,已经在App Store上架了。前两天更新了一些功能,然后用Instruments...
    Sheepy阅读 13,756评论 19 47