2016-07-28 25 views
1

我正在使用權限,我試圖讓調用需要權限的東西比詢問每次是否有權限更容易...用戶可以撤銷(運行時)權限的所有情況是什麼? (在Activity Lifecycle中)

用戶可以撤銷一次被請求的權限 - 但是問題在於當用戶進入應用程序菜單(在應用程序工作期間)並且撤銷給定權限時...

我假設只有兩種方式來撤銷權限: 1 - 當用戶被要求,並拒絕授予 2 - 當用戶轉到菜單和應用程序設置關閉權限

問題是:有沒有其他的方式來撤銷權限? 當我們的應用程序處於恢復狀態時,在我們不知情的情況下,任何其他在後臺工作的應用程序(或任何其他應用程序)是否會撤銷權限(在任何時候?

我問彷彿有隻2個方案中,我們都知道,應用程序可以無需調用的onPause沒有鬆動的權限()(外出菜單或顯示在頂部權限授予對話框)。 這將使我們能夠不重複要求授予權限,直到onPause()被調用。

+0

據我所知,撤銷權限的唯一途徑是你提到的那兩個。 – Vucko

回答

0

其他應用程序無法修改您的應用程序的權限。

如果您需要考慮用戶手動切換他們通過應用程序的設置,也許你需要確認你使用需要這些權限的API每一次的權限。

同時請注意,權限與API顯著改變23.

0

我知道,API 23引入了運行時的權限 - 這是專題的情況下...

好了,你說沒有其他應用程序可以更改我的應用程序權限,因此意味着在調用onPause()之前無法撤消它們。 如果我將設置一些全局布爾檢查如果onPause()已被調用?如果沒有設置(沒有onPause()被調用)我不需要在調用需要它的東西前檢查權限,因爲我認爲沒有辦法權限已被撤銷:>

我認爲Android Studio會警告我要求反正,但我認爲會有一些辦法擺脫的警告...... 這將簡化代碼

如果(calledOnPause) {//做權限檢查 ... } // 否則只需要調用需要的權限,方法

我認爲這只是檢查布爾狀態是不是做花哨的權限檢查

有沒有對我的任何想法更簡單的方法?

相關問題