网上代码也看了很多,但是没有什么好用的,于是自己手动写了一个,希望对大家有所帮助!
1、在build.gradle里添加依赖库,如
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:support-annotations:28.0.0'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'io.reactivex.rxjava2:rxjava:2.0.8'
compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.4@aar'
}
2、在MainActivity.java里添加调用
private void checkAppPermission() {
RxPermissions rxPermissions = new RxPermissions(this);
rxPermissions.requestEach(Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.RECORD_AUDIO)
.subscribe(new Consumer<Permission>() {
@Override
public void accept(@NonNull Permission permission) throws Exception {
if (permission.granted) {
// 用户已经同意该权限
Log.d(TAG, permission.name + " is granted.");
} else if (permission.shouldShowRequestPermissionRationale) {
// 用户拒绝了该权限,没有选中『不再询问』(Never ask again),那么下次再次启动时,还会提示请求权限的对话框
Log.d(TAG, permission.name + " is denied. More info should be provided.");
} else {
// 用户拒绝了该权限,并且选中『不再询问』
Log.d(TAG, permission.name + " is denied.");
}
}
});
3、在MainActivity.java里的onCreate()方法调用上面的方法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
checkAppPermission();
}
本文介绍了一种手动实现Android应用权限申请的方法。通过在build.gradle文件中添加必要的依赖库,并在MainActivity.java中编写代码来请求WRITE_EXTERNAL_STORAGE、READ_EXTERNAL_STORAGE及RECORD_AUDIO权限,最后在onCreate方法中调用权限检查函数。
3784

被折叠的 条评论
为什么被折叠?



