Android 6.0 權(quán)限申請(qǐng)

Android 6.0 的發(fā)布已經(jīng)將近一年了坚俗,其中引入了一個(gè)比較重要的新特性:?jiǎn)蝹€(gè)應(yīng)用的權(quán)限可以被管理了,用戶可以開啟或關(guān)閉一個(gè)應(yīng)用的任意一個(gè)權(quán)限帆啃。這就需要我們對(duì)這個(gè)特性進(jìn)行適配。
通過查看 Google 官網(wǎng)的教程 Requesting Permissions at Run Time ,可以快速的了解進(jìn)行權(quán)限申請(qǐng)摊唇,以及權(quán)限申請(qǐng)的處理方法。

權(quán)限申請(qǐng)

這里貼出請(qǐng)求權(quán)限的方法涯鲁,在需要權(quán)限的地方:

// Here, thisActivity is the current activity
if (ContextCompat.checkSelfPermission(thisActivity,
                Manifest.permission.READ_CONTACTS)
        != PackageManager.PERMISSION_GRANTED) {
    // Should we show an explanation?
    if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
            Manifest.permission.READ_CONTACTS)) {
        // Show an expanation to the user *asynchronously* -- don't block
        // this thread waiting for the user's response! After the user
        // sees the explanation, try again to request the permission.
    } else {
        // No explanation needed, we can request the permission.
        ActivityCompat.requestPermissions(thisActivity,
                new String[]{Manifest.permission.READ_CONTACTS},
                MY_PERMISSIONS_REQUEST_READ_CONTACTS);
        // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
        // app-defined int constant. The callback method gets the
        // result of the request.
    }
}

這里的代碼大部分都很好理解巷查,首先通過 ContextCompat.checkSelfPermission 方法判斷是否擁有某個(gè)權(quán)限有序,然后通過 ActivityCompat.shouldShowRequestPermissionRationale 方法判斷是否需要顯示請(qǐng)求權(quán)限解釋,最后通過 ActivityCompat.requestPermissions 方法顯示權(quán)限對(duì)話框讓用戶選擇是否允許使用該權(quán)限岛请。
這里 ActivityCompat.shouldShowRequestPermissionRationale 方法一開始我是比較疑惑的旭寿,經(jīng)過查資料和實(shí)際操作發(fā)現(xiàn)有以下幾種情況:

  • 當(dāng)首次詢問用戶是否允許權(quán)限時(shí),返回 false 崇败;
  • 當(dāng)用戶拒絕過一次權(quán)限時(shí)盅称,返回 true ,此時(shí)需要解釋該權(quán)限的作用后室;
  • 當(dāng)用戶選擇不再顯示該對(duì)話框缩膝,并拒絕時(shí),返回 false 咧擂,同時(shí)對(duì)話框也不再顯示逞盆。

回調(diào)處理

接下來需要處理用戶選擇的結(jié)果,activity通過實(shí)現(xiàn) ActivityCompat.OnRequestPermissionsResultCallback 接口松申,重寫 onRequestPermissionsResult 方法云芦。

@Override
public void onRequestPermissionsResult(int requestCode,
        String permissions[], int[] grantResults) {
    switch (requestCode) {
        case MY_PERMISSIONS_REQUEST_READ_CONTACTS: {
            // If request is cancelled, the result arrays are empty.
            if (grantResults.length > 0
                && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                // permission was granted, yay! Do the
                // contacts-related task you need to do.
            } else {
                // permission denied, boo! Disable the
                // functionality that depends on this permission.
            }
            return;
        }
        // other 'case' lines to check for other
        // permissions this app might request
    }
}

這里寫一下在實(shí)際使用過程中我遇到的坑,在 Google 的教程是適用于 activity 的贸桶,在 fragment 中使用時(shí)舅逸,我發(fā)現(xiàn)上述方法并沒有得到回調(diào),解決方法是在 fragment 中直接使用 fragment 的 requestPermissions 方法取代 ActivityCompat.requestPermissions 來顯示對(duì)話框皇筛,并重寫 fragment 中的 onRequestPermissionsResult 方法琉历,其他與上述一致。值得注意的是水醋,只要調(diào)用了 requestPermission 之后旗笔,不論用戶是允許,拒絕還是不在顯示拄踪,該方法都會(huì)被回調(diào)蝇恶。
內(nèi)容很簡(jiǎn)單,只要是講了使用中遇到的一些問題惶桐,在以后可能使用中可以得到避免撮弧,畢竟 6.0 的占有率會(huì)一直上升,6.0 權(quán)限的適配是需要做的姚糊。
危險(xiǎn)權(quán)限的列表和分組贿衍,還有完整的官方demo都在參考鏈接中。

參考鏈接:

Dangerous permissions and permission groups
Google sample

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末救恨,一起剝皮案震驚了整個(gè)濱河市贸辈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌肠槽,老刑警劉巖裙椭,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件躏哩,死亡現(xiàn)場(chǎng)離奇詭異署浩,居然都是意外死亡揉燃,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門筋栋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炊汤,“玉大人,你說我怎么就攤上這事弊攘∏栏” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵襟交,是天一觀的道長(zhǎng)迈倍。 經(jīng)常有香客問我,道長(zhǎng)捣域,這世上最難降的妖魔是什么啼染? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮焕梅,結(jié)果婚禮上迹鹅,老公的妹妹穿的比我還像新娘。我一直安慰自己贞言,他們只是感情好斜棚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著该窗,像睡著了一般弟蚀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上酗失,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天义钉,我揣著相機(jī)與錄音,去河邊找鬼级零。 笑死断医,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的奏纪。 我是一名探鬼主播鉴嗤,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼序调!你這毒婦竟也來了醉锅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤发绢,失蹤者是張志新(化名)和其女友劉穎硬耍,沒想到半個(gè)月后垄琐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡经柴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年狸窘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坯认。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡翻擒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出牛哺,到底是詐尸還是另有隱情陋气,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布引润,位于F島的核電站巩趁,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏淳附。R本人自食惡果不足惜议慰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望燃观。 院中可真熱鬧褒脯,春花似錦、人聲如沸缆毁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脊框。三九已至颁督,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間浇雹,已是汗流浹背沉御。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留昭灵,地道東北人吠裆。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像烂完,于是被迫代替她去往敵國(guó)和親试疙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 在android 6.0開始抠蚣,部分的權(quán)限需要我們動(dòng)態(tài)申請(qǐng)祝旷,也就是說當(dāng)我們的打開app的時(shí)候系統(tǒng)不會(huì)主動(dòng)向您申請(qǐng)ap...
    DontLazy閱讀 1,044評(píng)論 1 15
  • Android 6.0(API level 23)增加了運(yùn)行時(shí)權(quán)限權(quán)限申請(qǐng)。 一、權(quán)限主要分類 1怀跛、Normal權(quán)...
    王世軍Steven閱讀 478評(píng)論 0 0
  • Android6.0運(yùn)行時(shí)權(quán)限描述 在舊的權(quán)限管理系統(tǒng)中距贷,權(quán)限僅僅在App安裝時(shí)詢問用戶一次,用戶同意了這些權(quán)限A...
    pkqgo閱讀 1,549評(píng)論 0 2
  • 現(xiàn)在的社會(huì)對(duì)年輕人逼得太緊迫 似乎 你年輕不去大城市闖一闖就是沒出息 你年輕不去吃苦賺錢就是不上進(jìn) 你年輕不聽勸告...
    楊卿子閱讀 184評(píng)論 0 0
  • 親愛的朋友什湘,從去年單身到現(xiàn)在,已經(jīng)快過去一年了晦攒,看到現(xiàn)在活得越來越充實(shí)的你,活得越來越自信明媚的你得哆,我很高興脯颜。 還...
    鐘小閱讀 353評(píng)論 6 0