版本更新踩坑记录

相关配置

AndroidManifest.xml









      
            
        

创建network_security_config.xml,解决Android9.0明文请求



    

创建file_paths.xml,解决Android7.0 uri共享文件



    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

发起Install Apk意图,解决Android7.0共享文件URI转换,解决Android8.0未知来源apk安装

Intent intent = new Intent(Intent.ACTION_VIEW);
Uri contentUri;
//解决Android7.0 共享文件uri转换
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    contentUri = FileProvider.getUriForFile(context, context.getPackageName() + ".fileprovider", apkFile);
} else {
    contentUri = Uri.fromFile(apkFile);
}
//解决Android8.0未知来源apk安装
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
 }
if (contentUri != null) {
    intent.setDataAndType(contentUri, "application/vnd.android.package-archive");
    context.startActivity(intent);
}

未知来源权限请求回调

public void onActivityResult(int requestCode, int resultCode, Context context) {
  if (resultCode == RESULT_OK) {
    if (requestCode == 1) {
        Log.e(TAG, "设置允许未知来源安装,重新发起安装"); 
    } else {
        if (requestCode == 1) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { 
                boolean hasInstallPermission = context.getPackageManager().canRequestPackageInstalls(); 
                if (!hasInstallPermission) {
                    Log.e(TAG, "没有赋予 未知来源安装权限"); 
                }
            }
        } else if (requestCode == 2) {
            Log.e(TAG, "从安装页面回到欢迎页面--拒绝安装");
        }
    }
}

你可能感兴趣的:(版本更新踩坑记录)