国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android判斷用戶是否允許了攝像頭權(quán)限實(shí)例代碼

2019-12-12 03:06:20
字體:
供稿:網(wǎng)友

如題,既然是判斷用戶是否允許了攝像頭權(quán)限,那么,咱們就忽略是Manifest配置的問題,因?yàn)檫@是開發(fā)者的事。

用戶在使用APP時,如果首次進(jìn)入用攝像頭的地方,手機(jī)會提示是否允許該應(yīng)用使用攝像頭。有些用戶小手一抖、或者壓根就不想開啟攝像頭,咔擦,就給你關(guān)了,那好了。下回再進(jìn)入該功能,就會出現(xiàn)APP一片黑,或者崩潰的情況。

作為開發(fā)者,正常思路是要提示用戶,攝像頭權(quán)限被你關(guān)了,趕緊去手動開啟,不然,就別想用該功能了!那,咱們該怎么實(shí)現(xiàn)這個思路呢?

一、判斷攝像頭權(quán)限

Android API沒提供判斷攝像頭權(quán)限是否被關(guān)閉的方法,但是,我們依然有辦法,直接上代碼:

public static booleanisCameraUseable() {boolean canUse =true;Camera mCamera =null;try{mCamera = Camera.open();// setParameters 是針對魅族MX5。MX5通過Camera.open()拿到的Camera對象不為nullCamera.Parameters mParameters = mCamera.getParameters();mCamera.setParameters(mParameters);}catch(Exception e) {canUse =false;} if(mCamera !=null) { mCamera.release(); } return canUse; }

上面方法,放心copy到你的代碼里,在使用攝像頭之前,調(diào)用一下,返回ture說明攝像頭權(quán)限是開啟的。反之,攝像頭權(quán)限被用戶關(guān)掉了。

附注:

1、可以看出代碼實(shí)現(xiàn)思路是通過調(diào)用Camera.open(),然后根據(jù)是否出現(xiàn)異常來判斷權(quán)限狀態(tài)。感興趣的同學(xué)可以看看Android SDK里的android.hardware.Camera這個類,在第490行左右的代碼,google就是這么干的。

Camera(intcameraId) {interr = cameraInitNormal(cameraId);if(checkInitErrors(err)) {switch(err) {case EACCESS:throw newRuntimeException("Fail to connect to camera service");case ENODEV:throw newRuntimeException("Camera initialization failed");default:// Should never hit this.throw newRuntimeException("Unknown camera error");}}}

2、由于魅族MX5的ROM改了很多東西,google大哥的方法不能完全直接用,于是又加了上面有注釋處的代碼,這里不做過多解釋。

二、給提示

如果攝像頭權(quán)限被用戶關(guān)掉了,處理思路是:彈出個對話框,提示用戶去系統(tǒng)設(shè)置中,找到攝像頭管理權(quán)限界面,手動打開攝像頭權(quán)限。

三、跳轉(zhuǎn)設(shè)置界面手動開啟權(quán)限

跳轉(zhuǎn)設(shè)置界面的代碼如下:

Intent intent =new Intent(Settings.ACTION_SETTINGS);context.startActivity(intent);

附注:有的人會問,為啥不直接跳到攝像頭權(quán)限管理界面去呢,換個action不就行了?是的,這種思路沒錯,但是不同廠家手機(jī)打開攝像頭權(quán)限管理界面的action是不一樣的,差別太大,本人試過,整不動。。。感興趣的同學(xué)可以試試哦,驗(yàn)證一下

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 江川县| 苍山县| 纳雍县| 治多县| 五华县| 惠水县| 柞水县| 新乡市| 太湖县| 逊克县| 淅川县| 连城县| 高州市| 曲阜市| 高要市| 金秀| 衡水市| 安乡县| 同德县| 定西市| 读书| 石景山区| 右玉县| 盘山县| 施秉县| 于田县| 新和县| 大邑县| 金昌市| 九寨沟县| 西城区| 长丰县| 务川| 荃湾区| 海盐县| 泸定县| 济南市| 岐山县| 镇康县| 云霄县| 宜宾县|