android - 应用程序未经许可写入外部存储

标签 android android-permissions android-external-storage

我有一个使用以下权限的应用:

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

我正在构建适用于 Android 6.0 的应用:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "de.my.package"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

当我现在启动应用程序并写入外部存储时,即使我没有设置权限,我也不会被要求获得使用 Android 6.0 的 Nexus 5 的权限:

enter image description here

App 为什么以及如何在未经许可的情况下写入外部存储?

最佳答案

Starting in Build.VERSION_CODES.KITKAT, no permissions are required to read or write to the returned path; it's always accessible to the calling app. This only applies to paths generated for package name of the calling application. To access paths belonging to other packages, Manifest.permission.WRITE_EXTERNAL_STORAGE and/or Manifest.permission.READ_EXTERNAL_STORAGE are required.

你可以看到文档 here

关于android - 应用程序未经许可写入外部存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37522602/

相关文章:

android - 通过 setPermissionGrantState 或类似方式自动授予 ACTION_MANAGE_OVERLAY_PERMISSION

Android 位置权限未请求并自动拒绝

java - 如何做整数对的集合?

android - 如何通过无限循环字符串数组值来更新 TextView?

android - 如何关闭与 firebase 的连接

java - getExternalStorageDirectory() 和 getDataDirectory() 之间的区别

java - SD 卡中的图像未加载到 Web View 中

java - 如何在Java中使用DateTime和Unix时间?

android - Intent 自定义权限不起作用

java - 无法在 Android 中单击“允许外部写入访问权限”