0

我清單內:安卓:授權訪問外部寫身邊清單

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

但是當我運行的應用程序(它應該是創造和彈出卡的圖像),圖像沒有創建。

然後我手動更改應用程序的權限(啓用外部存儲權限:settings->applications->Myapp->permissions),並且該應用程序正常工作。

我該如何解決這個問題?

+0

我的清單裏我有:在第一次使用時的名字=「android.permission.WRITE_EXTERNAL_STORAGE」 –

+0

該版本手機有 –

回答

0

如果版本低於Android的6(棉花糖),您可以使用此代碼,而無需進行權限檢查:

final int REQUEST_CODE = 1; 

ActivityCompat.requestPermissions(activity, 
       new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},REQUEST_CODE); 

否則,你需要一種不同的方法:

public static boolean checkIfPermissionNeeded(Activity activity) { 

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && 
    activity.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) 
          != PackageManager.PERMISSION_GRANTED){ 
    return true; 
    } 

    return false; 
    } 

如果這個返回true您可以使用第一個塊中的代碼。

所以:

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

      if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){ 
       //task may be continued 
       permission = true; 
      } 
      else{ 
       //task cancelled 
       permission = false; 

      } 
      break; 

    } 
} 

而在你的活動,如果權限是true您可以繼續使用所需的操作。

+0

所以,這有做MM和授予權限: 使用許可權的Android?或者我錯了? –

+0

是的。由於MM每次需要用戶允許應用程序使用某些功能,會彈出一個對話框。因此,許可權可能是對的或不對;我應該更具體。 – Lazai