日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

[Android Studio]申请摄像头权限失败

發布時間:2023/12/14 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Android Studio]申请摄像头权限失败 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載來源:安卓開發調用攝像頭一直失敗的原因及解決(權限問題)

安卓開發調用攝像頭一直失敗的原因及解決(權限問題)

最近開發安卓的時候,發現調用攝像頭一直出錯,導致APP直接崩潰,

錯誤代碼:java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.android.camera/.Camera clip={text/uri-list U:file:///storage/emulated/0/DCIM/20181106191203.jpg} (has extras) } from ProcessRecord{2db2ead 2049:com.example.kkk.imagetest/u0a295} (pid=2049, uid=10295) with revoked permission android.permission.CAMERA

查詢了網上的一些博客,發現大多數沒有答到點子上,有的人直接把自己的代碼全盤照搬,沒有參考價值。現在發現原因如下:

1.Android 6.0之后權限需求的變動

以前的安卓權限都在manifest中一次申請,終身可用,到了安卓6.0(targetSdkVersion to 23)之后,為了防止權限濫用,Google就采取了一些措施:

a.對于targetSdkVersion低于23的APP,使用舊有規則:用戶在安裝的時候不得不接受所有權限(APP自帶),安裝后app就有了那些權限。

b.對于targetSdkVersion大于等于23的APP,使用新規則:app不得不在運行時一個一個詢問用戶授予權限。另外,用戶也可以隨時在設置里取消已經授權的權限。

2.知道了原因,解決方案:

已經在Manifest中配置了權限信息的情況下,在打開攝像頭之前,加上這樣一段代碼:ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CAMERA,Manifest.permission.WRITE_EXTERNAL_STORAGE},1);(詢問用戶授予權限)

解釋:ActivityCompat.requestPermissions(),這個方法接收三個參數,分別是Activity的實例、String數組(manifest中的請求權限)、請求碼

注意:第一個參數需要activity的實例,我的MainActivity繼承的是默認的APPCompatActivity,所以要加上".this"。

備注:這是最為直接、簡單的方法,會顯得有些簡陋,實際開發中會使用更加完善的方法,但是我覺得這對于初學者是最好理解的,

簡潔即是美。2018/11/6

作者:云淡風輕_935f
鏈接:https://www.jianshu.com/p/ddf87ce7afef
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

總結

以上是生活随笔為你收集整理的[Android Studio]申请摄像头权限失败的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。