應用程序獲取任何廣播或任何類型的警報時,其權限設置從設置更改?我有一個場景,當應用程序啓動並獲得LOCATION GROUP權限時,我們開始某種日誌記錄。但是當用戶在我們的應用程序崩潰之間撤銷此權限時。沒有找到任何方式來停止日誌記錄時,用戶取消它。此日誌記錄來自第三方庫,因此我們不能在它們之間放置任何檢查權限檢查。在Android M權限更改廣播操作M
回答
應用程序獲取任何廣播或任何類型的警報,當其權限設置從設置更改?
沒有記錄。
如果用戶撤銷之前授予您的權限,您的過程將被終止。當你下一次運行時,你將會發現權限更改是檢查權限的一部分。
如果用戶授予之前被拒絕的權限,則您的進程爲而不是已終止。但是,再次致電checkSelfPermission()
時,您會發現您有權訪問。
這裏的教訓是:不緩存權限查找結果。他們似乎是相當便宜的電話,所以只需撥打checkSelfPermission()
即可。
如果您的targetSdkVersion
低於23,checkSelfPermission()
不會幫助,但您應該獲取虛假數據而不是SecurityException
。在位置修復的情況下,如果用戶已撤銷位置訪問權限,則不應獲取任何位置信息。
但是,當用戶在應用程序之間撤銷此權限崩潰
我沒有嘗試過其中後臺服務運行方案和用戶撤銷許可。它應該終止你的過程,所以你會發現當你的服務下次運行時權限的變化。如果您發現您的流程是而不是被終止,那可能是Android中存在錯誤的跡象。
其實我可以從設置/應用撤銷權限,然後切換回我的應用。 –
我撤銷了權限,現在當我做ps我沒有看到進程運行,但我的應用程序仍然在最近的應用程序列表中,我可以從那裏啓動它。有沒有什麼辦法可以從最近的應用程序列表中清除它? –
@SumitShrivastava:「但我的應用程序仍然存在於最近的應用程序列表中」 - 當然。在Android 5.0+上,它將永遠存在。 「有什麼辦法可以將它從最近的應用程序列表中清除嗎?」 - 當用戶在設置中切換權限時不會有任何方法。請解釋您的應用出現在概覽/近期應用程序屏幕中導致的問題。 – CommonsWare
- 1. 在廣播接收器,檢查寫權限版本的Android M
- 2. Android M AppWidgetProvider權限
- 3. Android M的Android權限不起作用
- 4. Android M權限回撥
- 5. Android M新權限模型
- 6. Android M權限安裝/更新行爲
- 7. Android M請求權限不起作用
- 8. 在Android M上清除允許的權限M
- 9. 在運行時詢問權限Android M +
- 10. 在Android下處理權限M
- 11. 在Android M中實現新權限
- 12. 在Android中使用權限組M
- 13. 隱藏權限彈出在android M/N
- 14. 如何更改Android M中拒絕/授予的權限?
- 15. Android M請求權限非活動
- 16. Android M運行時權限問題
- 17. 版本的Android M權限模型
- 18. Android M權限系統:識別需求
- 19. Android M Camera Intent +權限錯誤?
- 20. 活動意圖權限Android M SDK 23
- 21. Android M權限解析推送通知
- 22. 權限不廣播工作中的Android
- 23. Android M:系統權限與WebView位置權限
- 24. Android M權限模型:詢問外部jar使用的權限
- 25. Perl m操作員問題
- 26. Android M在授予權限後被拒絕
- 27. Android M請求onSurfaceTextureAvailable回調權限不在活動
- 28. Android版本低於M的Android運行時權限?
- 29. 廣播的Android權限PACKAGE_REMOVED/PACKAGE_ADDED
- 30. Android權限拒絕:廣播意圖
沒有廣播,你可以做的只是檢查是否已授予權限 – tyczj
這有點suxors,特別是如果你有一個服務在後臺運行* required *,提示和批准許可,但是有人會在運行時粘貼w /權限並拒絕它*。如果沒有事件被告知權限發生變化,該服務將會像平常一樣繼續運行。它必須遵循天真地推薦的對每個已批准權限的調用進行權限測試的做法。最好是抓住一個事件並暫停服務,並用一流的通知提示需要恢復權限。 – swooby