2016-01-20 44 views
2

我開始使用Android進行開發。我使用帶有Android M權限系統的SDK 23。 在internet'examples,當我想的checkPermission,我發現:Android權限 - Manifest或android.manifest

this.checkSelfPermission(Manifest.permission.READ_CONTACTS) 

,但它不爲我工作。我需要寫:

this.checkSelfPermission(android.manifest.permission.READ_CONTACTS) 

我想知道它的區別以及爲什麼它不起作用。

如果它可以幫助,這是我的清單文件(僅權限):

<uses-permission android:name="android.permission.SEND_SMS" /> 
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS" /> 
    <uses-permission android:name="android.permission.READ_SMS" /> 
    <uses-permission android:name="android.permission.WRITE_SMS" /> 
    <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 
    <uses-permission android:name="android.permission.CAMERA" /> 
    <uses-permission android:name="android.permission.VIBRATE" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.CALL_PHONE" /> 
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" /> 
    <uses-permission android:name="android.permission.RECEIVE_SMS" /> 

謝謝

+0

這將取決於你正在做的類清單什麼進口。到底清單應該指向android.manifest('import android.manifest;') –

+0

謝謝佩德羅。確實...我導入了錯誤的包(Java.util.jar.manifest)。非常愚蠢...... :) –

回答

4

當你所要求的權限是否被允許,你應該使用android.Manifest.permission。 XX,然後問你應該使用Manifest.permission.XX 下面是一個例子:

public static boolean checkCameraPermissions(Activity activity, int permission) { 
    if (ContextCompat.checkSelfPermission(activity, android.Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { 
     ActivityCompat.requestPermissions(activity, 
       new String[]{Manifest.permission.CAMERA}, permission); 
     return false; 
    } 
    return true; 
}