欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Android應(yīng)用中怎么獲取判斷處理權(quán)限

這篇文章給大家介紹Android 應(yīng)用中怎么獲取判斷處理權(quán)限,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

為普定等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及普定網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站建設(shè)、普定網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

主要用到的幾個方法:

//檢查權(quán)限
int checkSelfPermission(String)
//申請權(quán)限
void requestPermissions(int, String...)
//是否應(yīng)該顯示請求權(quán)限的說明
boolean shouldShowRequestPermissionRationale(String)
//處理權(quán)限結(jié)果回調(diào)
void onRequestPermissionsResult(int,String[],int[])

是否有權(quán)限常量標(biāo)識:

PackageManager.PERMISSION_DENIED:拒絕了。

PackageManager.PERMISSION_GRANTED:授權(quán)了

上述四個方法中,前三個方法在support-v4的ActivityCompat中都有,建議使用兼容庫中的方法。最后一個方法是用戶授權(quán)或者拒絕某個權(quán)限組時系統(tǒng)會回調(diào)Activity或者Fragment中的方法。

1. checkSelfPermission(String)

檢查權(quán)限

1. 檢查某一個權(quán)限的當(dāng)前狀態(tài),你應(yīng)該在請求某個權(quán)限時檢查這個權(quán)限是否已經(jīng)被用戶授權(quán),已經(jīng)授權(quán)的權(quán)限重復(fù)申請可能會讓用戶產(chǎn)生厭煩。

2. 該方法有一個參數(shù)是權(quán)限名稱,有一個int的返回值,用這個值與上面提到的兩個常量做比較可判斷檢查的權(quán)限當(dāng)前的狀態(tài)。

if (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_CONTACTS)
    != PackageManager.PERMISSION_GRANTED) {
  // 沒有權(quán)限,可以在這里重新申請權(quán)限。
}else{
  // 有權(quán)限了。
}

2. requestPermissions(int, String…)

申請權(quán)限

請求用戶授權(quán)幾個權(quán)限,調(diào)用后系統(tǒng)會顯示一個請求用戶授權(quán)的提示對話框,App不能配置和修改這個對話框,如果需要提示用戶這個權(quán)限相關(guān)的信息或說明,需要在調(diào)用 requestPermissions() 之前處理

該方法有兩個參數(shù):

int requestCode:會在回調(diào)onRequestPermissionsResult()時返回,用來判斷是哪個授權(quán)申請的回調(diào)。

String[] permissions: 權(quán)限數(shù)組,你需要申請的的權(quán)限的數(shù)組。

由于該方法是異步的,所以無返回值,當(dāng)用戶處理完授權(quán)操作時,會回調(diào)Activity或者Fragment的onRequestPermissionsResult()方法。

ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.READ_CONTACTS}, MMM);

3. onRequestPermissionsResult(int,String[],int[])

處理權(quán)限結(jié)果回調(diào)

1. 該方法在Activity/Fragment中應(yīng)該被重寫,當(dāng)用戶處理完授權(quán)操作時,系統(tǒng)會自動回調(diào)該方法

2. 該方法有三個參數(shù):

int requestCode:在調(diào)用requestPermissions()時的第一個參數(shù)。

String[] permissions:權(quán)限數(shù)組,在調(diào)用requestPermissions()時的第二個參數(shù)。

int[] grantResults: 授權(quán)結(jié)果數(shù)組,對應(yīng)permissions,具體值和上方提到的PackageManager中的兩個常量做比較。

@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
  switch (requestCode) {
    case MMM: {
      if (grantResults.length > 0
        && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
        // 權(quán)限被用戶同意,可以做你要做的事情了。
      } else {
        // 權(quán)限被用戶拒絕了,可以提示用戶,關(guān)閉界面等等。
      }
      return;
    }
  }
} 

4. shouldShowRequestPermissionRationale(String)

是否應(yīng)該顯示請求權(quán)限的說

1.第一次請求權(quán)限時,用戶拒絕了,調(diào)用shouldShowRequestPermissionRationale()后返回true,應(yīng)該顯示一些為什么需要這個權(quán)限的說明。

2.用戶在第一次拒絕某個權(quán)限后,下次再次申請時,授權(quán)的dialog中將會出現(xiàn)“不再提醒”選項,一旦選中勾選了,那么下次申請將不會提示用戶。

3.第二次請求權(quán)限時,用戶拒絕了,并選擇了“不在提醒”的選項,調(diào)用shouldShowRequestPermissionRationale()后返回false。

4.設(shè)備的策略禁止當(dāng)前應(yīng)用獲取這個權(quán)限的授權(quán):shouldShowRequestPermissionRationale()返回false 。

5.加這個提醒的好處在于,用戶拒絕過一次權(quán)限后我們再次申請時可以提醒該權(quán)限的重要性,面得再次申請時用戶勾選“不再提醒”并決絕,導(dǎo)致下次申請權(quán)限直接失敗。

if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {// 沒有權(quán)限。
 if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_CONTACTS)) {
   // 用戶拒絕過這個權(quán)限了,應(yīng)該提示用戶,為什么需要這個權(quán)限。
 } else {
  // 申請授權(quán)。
  ActivityCompat.requestPermissions(thisActivity, new String[]{Manifest.permission.READ_CONTACTS}, MMM);
 }
}
...
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
 switch (requestCode) {
  case MMM: {
   if (grantResults.length > 0
    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
    // 權(quán)限被用戶同意。
   } else {
    // 權(quán)限被用戶拒絕了。
   }
   return;
  }
 }
}

關(guān)于Android 應(yīng)用中怎么獲取判斷處理權(quán)限就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

當(dāng)前題目:Android應(yīng)用中怎么獲取判斷處理權(quán)限
文章位置:http://www.chinadenli.net/article42/iphhhc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站外貿(mào)網(wǎng)站建設(shè)網(wǎng)站設(shè)計公司靜態(tài)網(wǎng)站品牌網(wǎng)站建設(shè)云服務(wù)器

廣告

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

外貿(mào)網(wǎng)站建設(shè)