权限有三种状态
1.用户已经同意该权限
2.用户拒绝了该权限,没有选中『不再询问』(Never ask again),那么下次再次启动时,还会提示请求权限的对话框
3.用户拒绝了该权限,并且选中『不再询问』,提醒用户手动打开权限
所以第三种,就是没有权限,也不会给你弹出系统权限
这是一个调取系统相机和使用知乎源码调取相册的方法:
//知乎 调用系统相册 api 'com.zhihu.android:matisse:0.5.0-alpha4'
//相机
public void getphoto() {
PictureDialog pictureDialog = new PictureDialog();
pictureDialog.setOnPersonalListener(new PictureDialog.OnPersonalListener() {
@Override
public void onTop() {
File file = new File(Environment.getExternalStorageDirectory().getPath() + "/" + System.currentTimeMillis() + ".jpg");
imageuri = Uri.fromFile(file);
//用于判断SDK版本是否大于23
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//检查权限
int i = ContextCompat.checkSelfPermission(getContext(), PERMISSIONS_STORAGE[0]);//0表示读写权限
int i2 = ContextCompat.checkSelfPermission(getContext(), PERMISSIONS_STORAGE[1]);//1表示照相权限
//如果权限申请失败,则重新申请权限
if (i == PackageManager.PERMISSION_DENIED && i2 == PackageManager.PERMISSION_DENIED) {//-1没授权
//重新申请权限函数
startRequestPermission();
Logger.e("权限请求成功");
} else if (i == PackageManager.PERMISS