[英]WRITE_EXTERNAL_STORAGE permission Not asking in Android 13
[英]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 的權限。 上面的代碼在我的主類中,權限在清單中,還需要什么來解決這個問題?
在嘗試以下代碼之前,在 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.