2016-06-14 68 views
-1

從應用程序我給了我的應用程序所需的權限。在我的應用程序正在運行時,我進入系統設置頁面並取消了權限。該應用程序崩潰。我們能夠處理這個問題嗎?Android處理權限從系統設置中禁用

+0

在關閉設置頁面的權限時,Android系統會殺死相應的進程並重新創建應用程序。因此無法處理。 – SivaShankar

回答

1

Android 6.0(Marshmallow,API 23)從安裝時權限模型切換到運行時權限模型。現在,不是用戶在運行時授予所有權限,而是開發者負責在運行時請求權限並進行適當的響應。

您應該先閱讀Requesting Permissions at Run Time文檔。這樣您就可以在運行棉花糖的設備上正確請求權限。

爲了防止您的應用程序崩潰,您需要致電ContextCompat.checkSelfPermission()以查看在嘗試調用需要許可的方法之前是否有權限。但是,這只是等式的一半,因爲如果您尚未擁有該權限,您仍然需要請求權限。

+0

感謝您的回覆。無論你在解釋什麼是「如何處理運行時間許可」。我的問題是,用戶授予權限,我正在訪問資源。現在用戶可以通過進入系統設置頁面來撤消此權限。在這種情況下,應用程序崩潰了,你能否以一種優雅的方式提出處理這種情況的方法? – SivaShankar

+0

您的問題具體說明「然後我進入系統設置頁面並取消了權限。」如果用戶已授予許可權並且您仍然遇到崩潰,則需要使用正確的詳細信息更新您的問題或發佈新問題。無論哪種方式,您都應該包含顯示在logcat中的Exception。 –