7.0权限申请 相机+存储/// private OnBooleanListener onPermissionListener;//权限监听 public void onPermissionRequests(String permission, OnBooleanListener onBooleanListener) { onPermissionListener = onBooleanListener; if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {
//没有权限申请一下 ActivityCompat.requestPermissions(this, new String[]{permission}, 1);} else { onPermissionListener.onClick( true); }} @Override public void onRequestPermissionsResult( int requestCode, String[] permissions, int[] grantResults) { if (requestCode == 1) { if (grantResults. length > 0 && grantResults[ 0] == PackageManager. PERMISSION_GRANTED) { //权限通过 if ( onPermissionListener != null) { onPermissionListener.onClick( true); } } else { //权限拒绝 if ( onPermissionListener != null) { onPermissionListener.onClick( false); } } return; } super.onRequestPermissionsResult(requestCode, permissions, grantResults);} public interface OnBooleanListener { void onClick( boolean bln);} 7.0权限申请 结束 ///
调用方法
onPermissionRequests(Manifest.permission.CAMERA, new BaseActivity.OnBooleanListener() { @Override public void onClick(boolean bln) { if (bln) { PhotoUtil.takePhotoForCamera(AeniorReplayActivity2.this); } else { Toast.makeText(mContext, "未打开相机权限", Toast.LENGTH_SHORT).show(); } } });
<!--authorities="你的包名+fileprovider" --> <provider android:name="android.support.v4.content.FileProvider" android:authorities="包名.fileprovider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/filepaths" /> </provider>
filepaths.xml
<?xml version="1.0" encoding="utf-8"?> <paths> <!-- external-path:sd ;path:你的应用保存文件的根目录;name随便定义--> <!-- root-path 手机存储根目录 --> <root-path path="" name="camera_photos" /> </paths>