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

OverView

在江都等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),全網(wǎng)營(yíng)銷推廣,外貿(mào)網(wǎng)站制作,江都網(wǎng)站建設(shè)費(fèi)用合理。

今天在復(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)看看我們的源代碼:

@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è)參考,也希望大家多多支持創(chuàng)新互聯(lián)。

當(dāng)前文章:Android如何實(shí)現(xiàn)動(dòng)態(tài)申請(qǐng)權(quán)限
當(dāng)前網(wǎng)址:http://bm7419.com/article28/jdspjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、云服務(wù)器App開(kāi)發(fā)、面包屑導(dǎo)航電子商務(wù)、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站