2015-10-13 59 views
0

我一直試圖在Android上執行一個簡單的權限檢查。Context Compat遇到checkSelfPermission時出錯

if (ContextCompat.checkSelfPermission(permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 
         alertboxGranted(); 
       } 

我一直在努力支持4倍的Android(基本上< 23 API)

(另外,僅供參考,我已經在清單,並在節目的開始進口所需的組件)

但是,當我添加上面的ContextCompat時,它出現錯誤,即checkSelfPermission不能應用於java.lang.Strings

但是不是ContextCompat基本上支持checkSelfPermission嗎?我不知道爲什麼它會出現這個錯誤。任何人都可以提出爲什麼會出現這個錯誤?

謝謝!

回答

3

然而,當我加入ContextCompat以上,它與錯誤出現的checkSelfPermission不能應用於java.lang.Strings類型

正確的。您缺少the Context first parameter to the method

private boolean canGetLocation() { 
    return(ContextCompat.checkSelfPermission(this, 
     Manifest.permission.ACCESS_FINE_LOCATION)== 
     PackageManager.PERMISSION_GRANTED); 
    } 
+0

呵呵,這樣的權限。不是ACCESS_FINE_LOCATION的上下文。所以你提供給我的布爾值是正確的權限檢查,我應該調用布爾值而不是錯誤的。謝謝! –