kis*_*h0n 7 permissions android
我正在使用下载管理器在我的 Android 应用程序中下载图像。
为了获得“WRITE_EXTERNAL_STORAGE”权限,我正在起诉Dexter库。
Dexter.withContext(getApplicationContext())
.withPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
.withListener(new PermissionListener() {
@Override
public void onPermissionGranted(PermissionGrantedResponse permissionGrantedResponse) {
Toast.makeText(LiveTaskActivity.this, "Granted", Toast.LENGTH_SHORT).show();
}
@Override
public void onPermissionDenied(PermissionDeniedResponse permissionDeniedResponse) {
Toast.makeText(LiveTaskActivity.this, "Denied", Toast.LENGTH_SHORT).show();
}
@Override
public void onPermissionRationaleShouldBeShown(PermissionRequest permissionRequest, PermissionToken permissionToken) {
}
}).check();
Run Code Online (Sandbox Code Playgroud)
但即使我手动接受从应用程序授予权限的权限,我总是会获得“拒绝”权限。我还尝试手动实现权限请求代码。
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED
|| ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
} else {
download();
}
Run Code Online (Sandbox Code Playgroud)
尽管如此,我还是无法获得许可。这是清单代码:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:requestLegacyExternalStorage="true"
Run Code Online (Sandbox Code Playgroud)
这是我的 build.gradle(app) 代码:
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
applicationId "app.gigg.me.app"
minSdkVersion 22
targetSdkVersion 30
versionCode 2
versionName '1.0.1'
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题。
**更新这是我的下载代码
private void startDownload() {
Toast.makeText(this, "Downloading File...", Toast.LENGTH_SHORT).show();
fileName = link.substring(link.lastIndexOf("/") + 1) + ".png";
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath(), fileName);
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(link))
.setTitle(fileName)
.setDescription("Downloading")
.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
.setDestinationUri(Uri.fromFile(file))
.setMimeType("image/*")
.setAllowedOverMetered(true)
.setAllowedOverRoaming(true);
download_id = downloadManager.enqueue(request);
}
Run Code Online (Sandbox Code Playgroud)
WRITE_EXTERNAL_STORAGE当您以 Android 11 ( ) 为目标平台时不可用targetSdkVersion 30。
您可以在这里阅读更多信息:https ://developer.android.com/about/versions/11/privacy/storage
| 归档时间: |
|
| 查看次数: |
9520 次 |
| 最近记录: |