安卓開發 7.0以上 解決 進入拍照閃退的問題
阿新 • • 發佈:2019-01-24
/** * 拍照 */ private void takePhoto() { //獲取系統版本 int currentapiVersion = android.os.Build.VERSION.SDK_INT; // 判斷儲存卡是否可以用,可用進行儲存 if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { fileName = getFileName(); dirPath = Environment.getExternalStorageDirectory().getPath(); File tempFile = new File(dirPath); if (!tempFile.exists()) { tempFile.mkdirs(); } File saveFile = new File(tempFile, fileName + ".jpg"); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (currentapiVersion < 24) { // 從檔案中建立uri Uri uri = Uri.fromFile(saveFile); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); } else { //相容android7.0 使用共享檔案的形式 ContentValues contentValues = new ContentValues(1); contentValues.put(MediaStore.Images.Media.DATA, saveFile.getAbsolutePath()); Uri uri = getApplication().getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); } startActivityForResult(intent, PHOTO_GRAPH); } else { Toast.makeText(PicSelectActivity.this, "未檢測到CDcard,拍照不可用!", Toast.LENGTH_SHORT).show(); } }