apk版本更新
Android7.0文件读1、动态申请读写权限
@TargetApi(23)public static booleancheckPermission(AppCompatActivity activity) {boolean isGranted = true;if (android.os.Build.VERSION.SDK_INT >= 23) {if (activity.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) !=PERMISSION_GRANTED) {//如果没有写sd卡权限
isGranted = false;
}if (activity.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) !=PERMISSION_GRANTED) {
isGranted= false;
}if (activity.checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) !=PERMISSION_GRANTED) {
isGranted= false;
}if (activity.checkSelfPermission(Manifest.permission.CALL_PHONE) !=PERMISSION_GRANTED) {
isGranted= false;
}if (!isGranted) {
activity.requestPermissions(newString[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission
.ACCESS_FINE_LOCATION,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS,
Manifest.permission.VIBRATE,
Manifest.permission.RECORD_AUDIO,
Manifest.permission.CALL_PHONE,
Manifest.permission.CAMERA},102);
}
}returnisGranted;
}2、使用 FileProvider 设置存储路径,可兼容7.0以上
附:FileProvider 使用 https://blog.csdn.net/lmj623565791/article/details/72859156
Android8.0安装apk
需要手动配置 安装权限1、静态配置
2、动态检查权限/**
* 判断是否是8.0,8.0需要处理未知应用来源权限问题,否则直接安装*/
private voidcheckIsAndroidO() {if (Build.VERSION.SDK_INT >= 26) {boolean b =getPackageManager().canRequestPackageInstalls();if(b) {
mMainPresenter.installApk();
}else{//请求安装未知应用来源的权限
ActivityCompat.requestPermissions(this, newString[]{Manifest.permission.REQUEST_INSTALL_PACKAGES},INSTALL_PACKAGES_REQUEST_CODE);
}
}else{
mMainPresenter.installApk();
}
}/*** 申请权限回调*/@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {super.onRequestPermissionsResult(requestCode, permissions, grantResults);switch(requestCode) {caseINSTALL_PACKAGES_REQUEST_CODE:if (grantResults.length > 0 && grantResults[0] ==PackageManager.PERMISSION_GRANTED) {
mMainPresenter.installApk();
}else{//引导用户手动开启安装权限
Intent intent = newIntent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
startActivityForResult(intent, GET_UNKNOWN_APP_SOURCES);
}break;default:break;
}
}