android拍照、相册选取的方法,权限获取用的RxPermissions。

拍照

private Uri outputFileUri; //返回文件uripublic void camera() {        if (SdkVersionUtils.hasMarshmallow()) { //6.0            rxPermissions                    .request(Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE) //相机、外部存储卡权限                    .subscribe(granted -> {                        if (granted) { // Always true pre-M                            if (SdkVersionUtils.hasN()) { //7.0 获取uri                                mFile = FileUtils.createImageFile();                                ContentValues contentValues = new ContentValues(1);                                contentValues.put(MediaStore.Images.Media.DATA, mFile.getAbsolutePath());                                outputFileUri = getContext().getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,contentValues);                            } else {                                mFile = FileUtils.createImageFile();                                outputFileUri = Uri.fromFile(mFile);                            }                            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);                            intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);                            if (intent.resolveActivity(getActivity().getPackageManager()) != null) {                                startActivityForResult(intent, Constant.TAKE_PHOTO);                            }                        } else if (shouldShowRequestPermissionRationale(Manifest.permission.CAMERA)) {                            ToastUtils.showShortToast(getContext(),"已拒绝权限");                            FileUtils.deleteFile(mFile);                        } else {                            ToastUtils.showShortToast(getContext(),"获取权限失败,需去系统设置中打开");                            FileUtils.deleteFile(mFile);                        }                    });        } else {            mFile = FileUtils.createImageFile();            outputFileUri = Uri.fromFile(mFile);            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);            intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);            if (intent.resolveActivity(getActivity().getPackageManager()) != null) {                startActivityForResult(intent, Constant.TAKE_PHOTO);            }        }    }

相册

 public void album() {        if (SdkVersionUtils.hasMarshmallow()) {            rxPermissions                    .request(Manifest.permission.READ_EXTERNAL_STORAGE)                    .subscribe(granted -> {                        if (granted) {                            Intent intent = new Intent();                            intent.setType("image/*");                            intent.setAction(Intent.ACTION_GET_CONTENT);                            startActivityForResult(intent, Constant.IMPORT_IMG);                        } else if (shouldShowRequestPermissionRationale(Manifest.permission.READ_EXTERNAL_STORAGE)) {                            ToastUtils.showShortToast(mContext, "已拒绝读取外部存储卡权限");                        } else {                            ToastUtils.showShortToast(mContext, "获取外部存储卡权限失败,需去系统设置中打开");                        }                    });        } else {            Intent intent = new Intent();            intent.setType("image/*");            intent.setAction(Intent.ACTION_GET_CONTENT);            startActivityForResult(intent, Constant.IMPORT_IMG);        }    }

更多相关文章

  1. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  2. Android屏幕分辨率正确获取及PX,DPI,DP,SP等的对应关系
  3. android 获取唯一标识
  4. android拍照与读取相册
  5. Android(安卓)给 app默认权限(不弹窗申请权限)
  6. Android(安卓)热点开关状态的判断和获取热点ssid
  7. Android软键盘适配问题
  8. AIR Native Extension的使用(Android)一 : 打包ane
  9. android之BitMap

随机推荐

  1. Qt for android 安装APP出现Failure [INS
  2. Android5.1 Camera Framework(二)
  3. Android(安卓)Launcher全面剖析
  4. [Android]Android的常用adb命令
  5. android检测当前网络是否可用
  6. Android(安卓)bluetooth介绍(三): 蓝牙扫描(
  7. android recovery 模式启动进入流程
  8. 欢迎使用CSDN-markdown编辑器
  9. Android(安卓)Tools集合下载
  10. Android(安卓)中文 API (18) —— AbsSeekB