在 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
我正在使用以下 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