2016年1月19日 星期二

在 Android M 上如何檢查我的程式已取得要求的權限?

How to check if a requested permission has been denied by users?

Android marshmallow 以上的手機開始允許使用者取消程式所要求的某些權限,從使用者的角度來看,這個新功能當然很好。不過從開發者來看,這卻是一個災難的開始。

為什麼?因為我就遇到使用者之前曾經手動取消我的程式所要求的某些權限,過了一陣子,他來信抱怨某些功能無法正常執行。查了半天,原來事實上是,他早已忘了他曾手動取消權限這檔事;或者他根本不知道取消這些權限,會導致那些功能無法正確運作。

身為開發者的你,要怎麼知道權限被使用者偷偷取消了呢?

如果你程式的 targetSdkVersion 是設為 23 或以上的值,可用下列方法檢查:

或是:

如果你程式的 targetSdkVersion 是設為 22 或以下的值,那上述方法都會傳回 true,即使使用者已手動取消權限。所以你要換成下列方法:

沒有留言:

張貼留言