protected void takePhoto() { if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, MY_PERMISSIONS_REQUEST_CALL_PHONE2); } else { /** * 默认开启后置摄像头 */ try { PHOTO_DIR.mkdirs(); mCurrentPhotoFile = new File(PHOTO_DIR, getPhotoFileName()); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); // 默认前置 intent.putExtra("camerasensortype", 2); intent.putExtra("autofocus", true); if (android.os.Build.VERSION.SDK_INT < 24){ // 从文件中创建uri uri = Uri.fromFile(mCurrentPhotoFile); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); } else { // 兼容Android 7.0 使用共享文件的形式 ContentValues contentValues = new ContentValues(); uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); } startActivityForResult(intent, 1); } catch (ActivityNotFoundException e) { e.printStackTrace(); } } }
解决Android7.0以上,手机拍照闪退的问题
最新推荐文章于 2022-05-19 22:15:44 发布