2017-01-29 6 views
0

In onCreate Methodelesen External Storage Erlaubnis in Android M Fehler

if (ContextCompat.checkSelfPermission(thisActivity, 
      Manifest.permission.READ_EXTERNAL_STORAGE) 
    != PackageManager.PERMISSION_GRANTED) { 

// Should we show an explanation? 
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity, 
     Manifest.permission.READ_EXTERNAL_STORAGE)) { 


} else { 

    ActivityCompat.requestPermissions(thisActivity, 
      new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 
      PERMISSION_REQUEST_CODE); 
} 

In onRequestPermissionsResult

@Override 
public void onRequestPermissionsResult(int requestCode, 
            String permissions[],int[]grantResults) { 
switch (requestCode) { 
    case PERMISSION_REQUEST_CODE: { 

     if (grantResults.length > 0 
      && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
      String path = Environment.getExternalStorageState(); 

     } else { 

     } 
     return; 
    } 
} 

Ich habe hart versucht, aber alle endet mit Crash-Anwendung auf. Die Genehmigung wird der Anwendung nicht erteilt. Warum ? Mache ich etwas falsch? Ihre Hilfe wäre willkommen.

+1

können Sie die Exception aus dem Protokoll als Service Absturz passiert? –

+0

AndroidRuntime: FATALE AUSNAHME: Haupt Prozess: com.google.android.packageinstaller, PID: 14436 java.lang.RuntimeException: Kann nicht starten ComponentInfo {com.google.android.packageinstaller/com.android.packageinstaller.permission. ui.GrantPermissionsActivity}: java.lang.NullPointerException: Versuch, die Länge des Nullarrays zu erhalten at android.app.ActivityThread.performLaunchActivity – Abdullah

Antwort

0

ich dies als mein Code bin mit, bekam von Stackoverflow, aber vergessen, die sie beantworten

public boolean hasPermission(Context context, String... permissions){ 
     for (String permission : permissions) { 
      if (ContextCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) { 
       return false; 
      } 
     } 
     return true; 
    } 
    int PERMISSION_ALL = 1; 
    String[] PERMISSIONS = { 
      Manifest.permission.INTERNET, 
      Manifest.permission.ACCESS_FINE_LOCATION, 
      Manifest.permission.ACCESS_NETWORK_STATE, 
      Manifest.permission.CHANGE_NETWORK_STATE, 
      Manifest.permission.WRITE_SETTINGS, 
      Manifest.permission.CAMERA, 
      Manifest.permission.RECEIVE_SMS, 
      Manifest.permission.SEND_SMS, 
      Manifest.permission.WRITE_EXTERNAL_STORAGE, 
      Manifest.permission.ACCESS_WIFI_STATE, 
      Manifest.permission.CHANGE_WIFI_STATE, 
      Manifest.permission.ACCESS_COARSE_LOCATION, 
      Manifest.permission.READ_CONTACTS}; 
    public void checkAllPermission(){ 
     if (!hasPermission(getActivity(), PERMISSIONS)){ 
      ActivityCompat.requestPermissions(getActivity(), PERMISSIONS, PERMISSION_ALL); 
     } 
    } 
} 

es versuchen (ändern als Ihre Notwendigkeit)

+0

Ich hatte diesen Code in einfacherer Form ausprobiert, aber gibt mir denselben Fehler – Abdullah

+0

ist Ihr Manifest bereits in Ordnung? (komplett) –

+0

ntaloventi Ja. – Abdullah

Verwandte Themen