最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年03月20日 15:05:14   作者:GreatCoder726  
這篇文章主要介紹了Android 如何實(shí)現(xiàn)動(dòng)態(tài)申請(qǐng)權(quán)限。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

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。

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

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

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

@Override
public 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è)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

墨竹工卡县| 定襄县| SHOW| 静宁县| 全椒县| 万年县| 习水县| 齐齐哈尔市| 内江市| 彭州市| 安康市| 阿勒泰市| 大宁县| 江川县| 襄汾县| 仙居县| 上饶县| 桂平市| 大庆市| 墨竹工卡县| 富锦市| 巩留县| 衡东县| 虹口区| 清镇市| 汾阳市| 尼玛县| 米泉市| 峨眉山市| 紫云| 荥经县| 安徽省| 漯河市| 海城市| 安顺市| 平定县| 云林县| 黄平县| 虎林市| 壤塘县| 左权县|