代碼改變世界
相機拍照功能之權限和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);
紅色標志的代碼就是在代碼中進行動態設置的權限,也是關於相機的兩個權限,分別是Manifest.permission.CAMERA和Manifest.permission.WRITE_EXTERNAL_STORAGE。
設定動態權限后,此時,在Android 6.0以上系統中就也會彈出相應的開啟相機使用權限和外部存儲相應的功能了,此時不管是Android 6.0以上還是以下,相機拍照功能都是相互兼容的。