久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Android 如何實(shí)現(xiàn)動(dòng)態(tài)申請(qǐng)權(quán)限

瀏覽:93日期:2022-09-25 18:43:43

OverView

今天在復(fù)習(xí)的時(shí)候,突然復(fù)習(xí)到我們的相機(jī)操作,但是對(duì)于相機(jī)操作,對(duì)于我來(lái)說(shuō)比較復(fù)雜的是對(duì)于權(quán)限的操作。所有我們需要對(duì)我們的相機(jī)操作進(jìn)行一些筆記的整理,加深記憶。

開(kāi)發(fā)環(huán)境

Android Studio 3.6

Android 11(R)

該筆記使用 java

權(quán)限申請(qǐng)的基礎(chǔ)知識(shí)

學(xué)習(xí)自:GOOGLE ANDROID DEVELOPERS

對(duì)于我們所需要申請(qǐng)的權(quán)限我們需要進(jìn)行如下的操作。

我們需要將所有需要申請(qǐng)的權(quán)限添加到App/src/main/AndroidManifest.xml文件中。

但是權(quán)限也是分為常規(guī)的權(quán)限和危險(xiǎn)的權(quán)限的,對(duì)于常規(guī)的權(quán)限我們的只需要在AndroidManifest.xml文件中添加就可以使用了,但是對(duì)于一些被視為危險(xiǎn)權(quán)限的,我們就需要讓用戶來(lái)選擇時(shí)候同意申請(qǐng)。

接下來(lái)我們就看一下如何操作我們的危險(xiǎn)權(quán)限吧。

如何判斷是否申請(qǐng)了權(quán)限

按照國(guó)際慣例我們先看一下源代碼:

private boolean checkPermission() { //first we need check this Drive has? CAMERA Permission if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CAMERA}, CHECK_PERMISSION_CAMERA); return false; } else return true;}

這里我們使用我們的相機(jī)權(quán)限作為實(shí)例。

首先我們需要判斷我們的使用有相機(jī)權(quán)限,可以使用,申請(qǐng)完成后我們需要進(jìn)行權(quán)限申請(qǐng)。我們將我們所需要的權(quán)限申請(qǐng),并且傳入我們的指定代碼。這里我的CHECK_PERMISSION_CAMERA的值為1。

然后就是我們需要重寫(xiě)我們的系統(tǒng)方法onRequestPermissionsResult

這個(gè)方法可以很好的來(lái)判斷用戶時(shí)候同意了我們的權(quán)限申請(qǐng)。

首先來(lái)看看我們的源代碼:

@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode) { case CHECK_PERMISSION_CAMERA: { if (grantResults.length > 0 && permissions[0].equals(PackageManager.PERMISSION_GRANTED)) {Toast.makeText(this, 'The camera permission application wes successful!', Toast.LENGTH_SHORT).show();dispatchTakePictureIntent(); } else {Toast.makeText(this, 'The camera permission application wes failed!', Toast.LENGTH_SHORT).show(); } } break; }}

這個(gè)就是我判斷用戶時(shí)候同意我們申請(qǐng)相機(jī)權(quán)限的全部代碼了。

這個(gè)也是非常的簡(jiǎn)單,我們通過(guò)在申請(qǐng)的時(shí)候傳入的識(shí)別代碼來(lái)判斷,如果代碼通過(guò)后我們需要通過(guò)驗(yàn)證grantResults的長(zhǎng)度和權(quán)限數(shù)組中的索引位置來(lái)判斷用戶有沒(méi)有同意我們的權(quán)限申請(qǐng)。如果同意了我們就可以進(jìn)行下一步操作。

這部分代碼還是非常的簡(jiǎn)單的。關(guān)于動(dòng)態(tài)權(quán)限的申請(qǐng)還是非常的簡(jiǎn)單的。

以上這篇Android 如何實(shí)現(xiàn)動(dòng)態(tài)申請(qǐng)權(quán)限就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 图们市| 徐水县| 恭城| 赞皇县| 衡山县| 通海县| 泽库县| 乐至县| 井研县| 昌宁县| 长海县| 共和县| 公主岭市| 霍城县| 九江县| 奎屯市| 册亨县| 吉水县| 磴口县| 沂南县| 南木林县| 原平市| 会泽县| 陕西省| 德江县| 水城县| 综艺| 专栏| 娱乐| 丹江口市| 论坛| 绵阳市| 布拖县| 四会市| 弥勒县| 若尔盖县| 南宁市| 仪征市| 顺平县| 临清市| 鞍山市|