android安装读写权限问题,Android7.0文件读写以及Android8.0安装apk权限问题

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;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值