溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android 如何實現(xiàn)動態(tài)申請權(quán)限

發(fā)布時間:2020-09-24 17:52:20 來源:腳本之家 閱讀:130 作者:GreatCoder726 欄目:移動開發(fā)

OverView

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

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

Android Studio 3.6

Android 11(R)

該筆記使用 java

權(quán)限申請的基礎(chǔ)知識

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

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

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

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

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

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

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

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)限作為實例。

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

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

這個方法可以很好的來判斷用戶時候同意了我們的權(quán)限申請。

首先來看看我們的源代碼:

@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;
  }
}

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

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

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

以上這篇Android 如何實現(xiàn)動態(tài)申請權(quán)限就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI