簡體   English   中英

Android Studio - 不詢問 Write_External_Storage

[英]Android Studio - not asking Write_External_Storage

在此處輸入圖片說明

在此處輸入圖片說明

我如何請求

 public void requestPermissionToWriteToFile() {

 if(ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)){
            new AlertDialog.Builder(this)
                    .setTitle("Permission needed")
                    .setMessage("This permission is needed for camera use and internal file save")
                    .setPositiveButton("ok", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                                    PERMISSION_REQUEST_WRITE_FILES);
                        }
                    })
                    .setNegativeButton("cancel", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                        }
                    }).create().show();
    }
    else
    {
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                        PERMISSION_REQUEST_WRITE_FILES);
    }
}

我如何檢查

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    if(requestCode == PERMISSION_REQUEST_WRITE_FILES){
        if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
        {Toast.makeText(this, "PERMISSION_GRANTED", Toast.LENGTH_SHORT).show();}
        else
        {Toast.makeText(this, "PERMISSION_DENIED", Toast.LENGTH_SHORT).show();}
    }
}

一旦應用程序啟動,訪問權限就不會被授予,它只是保持這種狀態,當我調用上述方法時,權限對話框不會出現(不要求權限)。 即使我轉到設置並從那里更改它,它仍然不會授予我對 WRITE_EXTERNAL_STORAGE 的權限。 上面的代碼在我的主類中,權限在清單中,還需要什么來解決這個問題?

  • 還有另一個像這樣的線程,但這並沒有解決我的問題 jsyk。

在嘗試以下代碼之前,在 STORAGE 中添加缺少的 G。

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

然后在單擊按鈕時調用它:

if (androidx.core.content.ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.READ_EXTERNAL_STORAGE) == android.content.pm.PackageManager.PERMISSION_DENIED || androidx.core.content.ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == android.content.pm.PackageManager.PERMISSION_DENIED) {

androidx.core.app.ActivityCompat.requestPermissions(MainActivity.this, new String[] {android.Manifest.permission.READ_EXTERNAL_STORAGE, android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1001);
} else {
//permission already granted
}

此外,添加讀取外部存儲權限以避免任何問題:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM