1. 程式人生 > >相機拍照功能之許可權和Android版本問題

相機拍照功能之許可權和Android版本問題

對於Android 6.0之前,想要使用系統的相機進行拍照,那麼只要在AndroidManifedt.xml中進行新增相應的許可權,主要是兩個:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA"/>

這樣設定完成後,當在Android 6.0一下(不包括6.0)進行使用系統相機進行拍照是完全沒有問題,當我們進行點選拍照功能時,此時系統就會提醒我們開啟相應的許可權,這說明使用系統相機進行拍照是沒有問題的,但是,但使用

Android 6.0以上系統(包括6.0)時,此時點選拍照功能時,此時就會只彈出一個“黑色提示框”,而且功能完全是死的,沒有任何的相應。通過上網百度,發現對於Android 6.0以上系統,不能只是在AndroidManifest.xml中進行配置,還要在程式程式碼中進行動態設定相應的許可權。

ActivityCompat.requestPermissions($.getActivity(),        new String[]{Manifest.permission.CAMERA,Manifest.permission.WRITE_EXTERNAL_STORAGE},        1);


Intent intent = new Intent(getBaseContext(), ActivityCapture.class);
startActivityForResult(intent, CameraRequestCode);

紅色標誌的程式碼就是在程式碼中進行動態設定的許可權,也是關於相機的兩個許可權,分別是Manifest.permission.CAMERAManifest.permission.WRITE_EXTERNAL_STORAGE

設定動態許可權後,此時,在Android 6.0以上系統中就也會彈出相應的開啟相機使用許可權和外部儲存相應的功能了,此時不管是Android 6.0

以上還是以下,相機拍照功能都是相互相容的。