2015-12-10 65 views
-3

我有此相同的問題:電話狀態權限?

How permission can be checked at runtime without throwing SecurityException?

對於權限READ_PHONE_STATE,因爲我害怕它會拉一個例外,其不具有兼容性的手機設備。所以,作爲答案的建議,我創造了這個方法:

private boolean checkReadPhonePermission() { 
     String permission = "android.permission.READ_PHONE_STATE"; 
     int res = checkCallingOrSelfPermission(permission); 

     return (res == PackageManager.PERMISSION_GRANTED); 
    } 

如果設備具有手機兼容性應返回true和false如果不。然後我包該位的代碼,如果用戶是在手機上音頻靜音,基於該方法返回什麼的if語句:

enter image description here

出於某種原因,當我跑這對我的模擬器並敬酒看看該方法返回什麼,我得到了錯誤。仿真器設備雖然是一個電話,所以我期望它能夠允許這種權限......爲什麼會發生這種情況?

+0

@downvoters感謝您對我的問題的反饋!如果你告訴我你不喜歡我的問題是什麼,那麼我可以在未來的問題中解決它,我真的很感激! –

回答

0

如果設備有手機的兼容性和虛假的,如果它不

嗯哪一個應返回true,沒有。

如果您想知道設備是否具有電話功能,請撥打use hasSystemFeature(PackageManager.FEATURE_TELEPHONY) on PackageManager

+0

那麼如何在鏈接問題中使用inazaruk提出的方法? –

+0

所以我試着做你說的,但現在,它永遠是真的!即使在平板電腦上,也不可能有電話。 –

+0

以下是我試用的代碼:https://gist.github.com/anonymous/3ab92a621d70e9e05a5c –