在 v23 上找不到符号 Manifest.permission.WRITE_EXTERNAL_STORAGE

Can not find Symbol Manifest.permission.WRITE_EXTERNAL_STORAGE on v23

我正在使用以下 build.gradle 文件编译代码

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {

        applicationId "com.example"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

为了访问将照片保存到 SDCARD 我已经打开了 V23 的权限对话框

喜欢下面的截图

但我收到以下错误

找不到符号Manifest.permission.WRITE_EXTERNAL_STORAGE

我已将 sdkVersion 设置为 23,但为什么我仍然收到此错误

请阅读this article

由于重新设计了权限系统,所以有些权限需要撤销,有些则不需要。您请求的特定权限位于名为 android.permission-group.STORAGE 的组中。看看这个。

试试这个:

private static final int REQUEST_EXTERNAL_STORAGE = 1;
    private static String[] PERMISSIONS_STORAGE = {Manifest.permission.READ_EXTERNAL_STORAGE,
            Manifest.permission.WRITE_EXTERNAL_STORAGE};

            ActivityCompat.requestPermissions(mActivity, PERMISSIONS_STORAGE,
                     REQUEST_EXTERNAL_STORAGE);

最后我发现 Menifest 文件是由 Android Studio

自动生成的

在 AndroideMenifest 中,我为 ParsePushNotification

编写了以下代码
 <!--
      IMPORTANT: Change "com.parse.starter.permission.C2D_MESSAGE" in the lines below
      to match your app's package name + ".permission.C2D_MESSAGE".
    -->
    <permission android:protectionLevel="signature"
        android:name="com.example.permission.C2D_MESSAGE" />
    <uses-permission android:name="com.example.permission.C2D_MESSAGE" />

生成以下清单文件

所以当我在下面编写代码时,它就可以工作了

android.Manifest.permission.WRITE_EXTERNAL_STORAGE

而不是

Manifest.permission.WRITE_EXTERNAL_STORAGE

我认为您可以使用 android.Manifest.permission 或 android.Manifest.permission_group 中 android 的清单 class。有关详细权限类型,您可以阅读此 Manifest.permission,请参阅此

int permissionCheck = ContextCompat.checkSelfPermission(thisActivity,
    android.Manifest.permission.WRITE_CALENDAR);

清单class前只写Android。变化:

Manifest.permission.WRITE_CALENDAR

至:

android.Manifest.permission.WRITE_CALENDAR

这个问题的解决方法很简单..只需在 "manifest" 之前添加 "android" 即可。

android.Manifest.permission.WRITE_CALENDAR