2015-10-19 37 views
0

如果所有調用ActivityCompat.requestPermissions(),那麼操作系統將顯示一個包含拒絕或許可按鈕的對話框。還有一個從不再顯示這個複選框。Android M - 無論如何知道用戶是否選擇永不再顯示授予權限對話框?

但是,我無法看到應用程序知道用戶是否勾選了此框 - 在onRequestPermissionsResult()中,如果用戶單擊拒絕並且如果用戶在單擊之前單擊了複選框,則grantResults參數爲PERMISSION_DENIED拒絕。 無論如何,應用程序可以找出用戶是否不想再次看到該對話框?

回答

4

您可以使用ActivityCompat.shouldShowRequestPermissionRationale() - 它會在少數情況下返回false

  • 你從來沒有問許可之前
  • 用戶已經檢查了「永不再」複選框
  • 的許可已被政策禁用(例如,在工作情況下)

通過將此選項與共享首選項存儲在一起,如果您曾經要求過許可n,當你撥打requestPermissions()時,你可以有效地確定他們是否真的會看到對話。