1. 程式人生 > >Android 筆記 permissions 之 shouldShowRequestPermissionRationale()

Android 筆記 permissions 之 shouldShowRequestPermissionRationale()

permissions

在6.0時代,需要在程式執行時獲取相關許可權,展開一個對話方塊詢問是否授予該程式相應許可權。

從第二次開始執行的時候,會增加一個選項框,“以後不再詢問”,如果選擇了這個選項,那麼以後程式不會再詢問是否授予許可權了。

這時候選擇了確認倒還好,之後倒方便了。
如果選擇了拒絕,那之後也不會顯示對話方塊,但是許可權一直是拒絕的。這樣是非常不好的體驗,不知道的還以為程式崩潰了。

所以,我們需要在這個時候也顯示相應對話方塊來告訴使用者

shouldShowRequestPermissionRationale()

這個方法是AppCompact裡面的,用於許可權管理

為了幫助查詢使用者可能需要解釋的情形,Android 提供了一個實用程式方法,即 shouldShowRequestPermissionRationale()。如果應用之前請求過此許可權但使用者拒絕了請求,此方法將返回 true。

注:如果使用者在過去拒絕了許可權請求,並在許可權請求系統對話方塊中選擇了 Don’t ask again 選項,此方法將返回 false。如果裝置規範禁止應用具有該許可權,此方法也會返回 false。

這是官網裡面的解釋。所以,如果使用者選擇了拒絕並且不再提醒,那麼這個方法會返回false,通過這一點,就可以在適當的時候展開一個對話方塊,告訴使用者到底發生了什麼,需要怎麼做

實際測試中發現,這個時候如果直接呼叫requestPermissions()也沒用,因為剛才說了,已經選擇不再提醒了。所以,需要告訴使用者怎麼開啟許可權:在app資訊介面可以選擇並控制所有的許可權。