【发布时间】:2015-04-29 08:33:45
【问题描述】:
这两种语法有什么区别。
android:uses-permission 和 uses-permission。例如:
<android:uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
当我创建一个从存储读取的 Activity 时,Android Studio 自动将第一个添加到清单中。还有为什么当我将项目的targetSdkVersion设置为21时,它添加了android:maxSdkVersion属性并专门将其设置为18。
【问题讨论】:
-
这个问题的答案取决于您的 XML 清单文件中的命名空间声明。请发布您的完整文件。
-
“当我创建一个从存储读取的活动时,Android Studio 自动将第一个添加到清单中”——嗯,真的吗?您在 IDE 中具体做了什么触发它将其添加到清单中? AFAIK,
android:uses-permission是一个错误,它肯定不是它通常出现的样子。android:maxSdkVersion是因为如果您只使用getExternalFilesDir()和getExternalCacheDir(),则在 Android 4.4+ 设备上不需要该权限。如果您打算使用其他外部存储位置,请从标签中删除maxSdkVersion。 -
我不确定您是如何获得这两个权限的,但第一个 android:uses-permission 意味着从 API 级别 19 开始,系统将不再授予您的应用 READ_EXTERNAL_STORAGE 权限。更多详情:developer.android.com/guide/topics/manifest/…
-
@CommonsWare 这很有意义。当我创建一个从存储中读取图像并运行调试的活动时,它会自动添加。我正在使用 Android Studio 1.1.0。
-
@MounirElfassi 第二个是我添加的,因为应用程序不断崩溃并抱怨没有权限。
标签: android android-layout android-studio android-manifest android-permissions