Android安装APK文件

在AndroidManifest.xml添加provider


    
 

file_paths文件:

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

    

安装APK

File completeApkfile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), aApkName);
if (!completeApkfile.exists()) {
    return;
}
completeApkfile.renameTo(new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), aApkName.replace(".md", ".apk")));
File apkfile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), aApkName.replace(".md", ".apk"));
// 通过Intent安装APK文件
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri apkUri;
// Android 7.0 以上不支持 file://协议 需要通过 FileProvider 访问 sd卡 下面的文件,所以 Uri 需要通过 FileProvider 构造,协议为 content://
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    // 声明需要的临时权限
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    // content:// 协议
    apkUri = FileProvider.getUriForFile(mContext.getApplicationContext(), "包名.fileProvider", apkfile);
} else {
    // file:// 协议
    apkUri = Uri.fromFile(apkfile);
}
intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
aContext.startActivity(intent);
展开阅读全文

页面更新:2024-06-20

标签:文件   权限   声明   协议   数码

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top