本文介紹了如何處理被拒絕的權限Android M(EasyPermission)的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我使用EasyPermission檢查我的Android中是否授予了某些權限,如果沒有,則請求它們。很酷的庫,工作得很好,但我還沒有弄清楚如果某些權限被拒絕時該如何處理。
所以基本上是在Create上運行如下代碼來檢查
if (EasyPermissions.hasPermissions(Splash.this, perms )) {
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String IMEI = telephonyManager.getDeviceId();
String SimSimSerial = telephonyManager.getSimSerialNumber();
Toast.makeText(Splash.this, "IMEI: " + IMEI + " SimSerial: " + SimSimSerial, Toast.LENGTH_SHORT).show();
} else {
EasyPermissions.requestPermissions(Splash.this, "Without these permissions, the app is unable to successfully complete authentication. Please allow us to access your device so that we can better serve you. " ,PERMS_REQUEST_CODE, perms );
}
代碼分解:如果存在權限,則繼續其他請求,這很好。我的問題是,如果在請求期間,有人點擊了Never Ask按鈕,該怎么辦?EasyPermises的人對此有一個功能
EasyPermissions.somePermissionPermanentlyDenied(Splash.this, permsList)
我的兩難境地是在哪里調用該函數,因為請求權限方法不返回任何內容(Void)。我嘗試了類似
的內容
if (EasyPermissions.hasPermissions(Splash.this, perms )) {...
} else if (EasyPermissions.somePermissionPermanentlyDenied(Splash.this, permsList)) {
} else {
EasyPermissions.requestPermissions(Splash.this, "Without these permissions, the app is unable to successfully complete authentication. Please allow us to access your device so that we can better serve you. " ,PERMS_REQUEST_CODE, perms );
}
但它總是在啟動時運行被拒絕的權限,而不是在運行時用戶實際單擊Never按鈕時運行。如有任何幫助,我們將不勝感激。
指向EasyPermission的鏈接https://github.com/googlesamples/easypermissions
推薦答案
選中此link。
您必須在此處實現EasyPermissions.PermissionCallbacks,您將獲得添加方法,這些方法將是onRequestPermissionsResult、onPermissionsGranted、onPermissionsDened。然后,在onPermissionsDened中,您可以處理您的拒絕狀態。
試一試,讓我知道它是否對你有效。
這篇關于如何處理被拒絕的權限Android M(EasyPermission)的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,