安卓 7.0之後 呼叫系統相機崩潰
阿新 • • 發佈:2019-02-18
解決方案:
1、(推薦)7.0之後你的app就算有許可權,給出一個URI之後手機也認為你沒有許可權。不用修改原有程式碼,在Application的oncreate方法中:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());
}
2、在呼叫相機的時候新增7.0系統的判斷
/*獲取當前系統的android版本號*/ int currentapiVersion = android.os.Build.VERSION.SDK_INT; Log.e("currentapiVersion","currentapiVersion====>"+currentapiVersion); if (currentapiVersion<24){ intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(pathFile)); startActivityForResult(intent, TAKE_PICTURE); }else { ContentValues contentValues = new ContentValues(1); contentValues.put(MediaStore.Images.Media.DATA, pathFile.getAbsolutePath()); Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,contentValues); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); startActivityForResult(intent, TAKE_PICTURE); }