2017-01-25 63 views
0

這是我到目前爲止所做的,但問題是,代碼從不要求權限,沒有錯誤,沒有強制關閉。我目前正在測試Android 6.0設備。我甚至在設置中撤銷了權限,但它仍然沒有問。我已經發布了完整的代碼如下─如何申請android 6.0的存儲權限?

package com.example.pper; 

import android.Manifest; 
import android.app.Activity; 
import android.content.pm.PackageManager; 
import android.os.Build; 
import android.os.Bundle; 
import android.support.v4.app.ActivityCompat; 
import android.util.Log; 

public class MainActivity extends Activity { 
private String TAG; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    isStoragePermissionGranted(); 
} 

public boolean isStoragePermissionGranted() { 
    if (Build.VERSION.SDK_INT >= 23) { 
     if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { 
      Log.v(TAG, "Permission is granted"); 
      return true; 
     } else { 

      Log.v(TAG, "Permission is revoked"); 
      ActivityCompat 
        .requestPermissions(
          this, 
          new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 
          1); 
      return false; 
     } 
    } else { // permission is automatically granted on sdk<23 upon 
       // installation 
     Log.v(TAG, "Permission is granted"); 
     return true; 
    } 
} 

@Override 
public void onRequestPermissionsResult(int requestCode, 
     String[] permissions, int[] grantResults) { 
    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
    if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
     Log.v(TAG, "Permission: " + permissions[0] + "was " 
       + grantResults[0]); 
     // resume tasks needing this permission 
    } 
} 

}

回答

0

檢查shouldShowRequestPermissionRationale() - 如果你面前有對話框,然後單擊「不再詢問」它絕不會要求你再permmission。

爲了幫助查找用戶可能需要解釋的情況,Android提供了一個工具方法shouldShowRequestPermissionRationale()。如果應用程序以前請求過此權限並且用戶拒絕了此請求,則此方法返回true。

注意:如果用戶過去拒絕了權限請求,並且 選擇了權限請求系統 對話框中的不要再次請求選項,則此方法返回false。如果 設備策略禁止應用擁有該權限,該方法也會返回false。

+0

我卸載應用程序,並重新安裝了 –

+0

你嘗試調試/日誌,看看問題出在哪裏? –

0

請確保您的清單文件包括這樣的事情:

<uses-permission 
    android:name="android.permission.WRITE_EXTERNAL_STORAGE" 
    android:maxSdkVersion="25" /> 
+0

是的,它已經是 –

+0

嗯,奇怪,你的代碼似乎在我的設備(Android 7.1.1)上正常工作。 –

+0

我有三星,也許他們定製了他們的圖書館 –