android動態(tài)權(quán)限請求簡單教程

總起

安卓應(yīng)用在用戶安裝的時候會跳出一大列權(quán)限要求,例如定位呀讀取通訊錄呀什么的面粮,這有時讓使用者認(rèn)為應(yīng)用 總是亂要一些它并不需要的權(quán)限少孝,從而引起用戶的反感甚至可能拒絕安裝。

所以與其在應(yīng)用安裝的時候羅列出一大堆權(quán)限熬苍,有時不如只列舉一些必要的權(quán)限稍走,剩下的權(quán)限等到用戶真正使用到某個功能的時候再開啟權(quán)限。

下面是關(guān)于動態(tài)權(quán)限請求的英文描述:

boolean shouldShowRequestPermissionRationale (Activity activity, String permission)
 Gets whether you should show UI with rationale for requesting a permission. 
 You should do this only if you do not have the permission and the context in which the permission
 is requested does not clearly communicate to the user what would be the benefit from granting this permission.

For example, if you write a camera app, requesting the camera permission would be expected by the user 
and no rationale for why it is requested is needed. If however, the app needs location for tagging photos 
then a non-tech savvy user may wonder how location is related to taking photos. In this case you may 
choose to show UI with rationale of requesting this permission.

用我的話翻譯過來就是:

你的應(yīng)用需要某個權(quán)限來實現(xiàn)功能柴底,但是你在manifest并沒有聲明婿脸,這時候你應(yīng)該告訴用戶需要這個權(quán)限的原因以及他們能從中獲得什么便利。
例如柄驻,一個相機應(yīng)用需要相機權(quán)限很正常狐树,但是這個硬要需要位置權(quán)限的話,用戶可能并不能理解:
    oh~這應(yīng)用我只是要用來拍照的呀為什么這個小碧池要我的位置權(quán)限它要干嘛定位我偷窺我嗎好可怕(逃ε=ε=ε=┏(゜ロ゜;)┛

所以說要一些可能會引起歧義的權(quán)限就應(yīng)該跟用戶說清楚用來干嘛鸿脓。
Screenshot_20161016-002058.png

例如這個(逃

代碼實現(xiàn):

//安卓版本檢查抑钟,因為下面的checkSelfPermission以及shouldShowRequestPermissionRationale都是API23才開始支持的
//API23是android6.0,即android M
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {return true;}
//權(quán)限檢查
if (checkSelfPermission(READ_CONTACTS) == PackageManager.PERMISSION_GRANTED) {
    Log.i(TAG,"permission has opened");return true;}
    if (shouldShowRequestPermissionRationale(READ_CONTACTS)) {
    Log.i(TAG,"opening permission");
    Snackbar.make(actv_email, R.string.permission_rationale, Snackbar.LENGTH_INDEFINITE).setAction(android.R.string.ok, new View.OnClickListener() {
        @Override
        @TargetApi(Build.VERSION_CODES.M)
        public void onClick(View v) {
            //用snackbar來向用戶解釋:為什么我們需要某權(quán)限
            requestPermissions(new String[]{READ_CONTACTS}, REQUEST_READ_CONTACTS);
        }
    }).show();
} else {
    //系統(tǒng)會顯示一個請求權(quán)限的提示對話框野哭,當(dāng)前應(yīng)用不能配置和修改這個對話框
    requestPermissions(new String[]{READ_CONTACTS}, REQUEST_READ_CONTACTS);
}

代碼流程概述

先是用checkSelfPermission進行權(quán)限檢查在塔,再用shouldShowRequestPermissionRationale確認(rèn),什么叫確認(rèn)呢官方文檔沒有說(攤手

只知道會返回true or false拨黔,然后我試了一下蛔溃,發(fā)現(xiàn)每次拒絕請求的權(quán)限之后,下次打開應(yīng)用繼續(xù)會彈出snackbar篱蝇,

只有當(dāng)拒絕請求的權(quán)限并選中不再提醒的時候贺待,以后再次打開應(yīng)用才不會出現(xiàn)snackbar。

暫時認(rèn)為shouldShowRequestPermissionRationale是用來檢查用戶是否同意再次請求權(quán)限的方法态兴,之后我了解一下再補充說明狠持。

endding

以上就是動態(tài)權(quán)限請求的簡單介紹&代碼實現(xiàn)咯,咱第一篇簡書~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瞻润,一起剝皮案震驚了整個濱河市喘垂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绍撞,老刑警劉巖正勒,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異傻铣,居然都是意外死亡章贞,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門非洲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鸭限,“玉大人蜕径,你說我怎么就攤上這事“芫” “怎么了兜喻?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長赡麦。 經(jīng)常有香客問我朴皆,道長,這世上最難降的妖魔是什么泛粹? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任遂铡,我火速辦了婚禮,結(jié)果婚禮上晶姊,老公的妹妹穿的比我還像新娘扒接。我一直安慰自己,他們只是感情好帽借,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布珠增。 她就那樣靜靜地躺著,像睡著了一般砍艾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上巍举,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天脆荷,我揣著相機與錄音,去河邊找鬼懊悯。 笑死蜓谋,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的炭分。 我是一名探鬼主播桃焕,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼捧毛!你這毒婦竟也來了观堂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤呀忧,失蹤者是張志新(化名)和其女友劉穎师痕,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體而账,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡胰坟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了泞辐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片笔横。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡竞滓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吹缔,到底是詐尸還是另有隱情商佑,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布涛菠,位于F島的核電站莉御,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏俗冻。R本人自食惡果不足惜礁叔,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望迄薄。 院中可真熱鬧琅关,春花似錦、人聲如沸讥蔽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冶伞。三九已至新症,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間响禽,已是汗流浹背徒爹。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留芋类,地道東北人隆嗅。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像侯繁,于是被迫代替她去往敵國和親胖喳。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

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