android:uses-permission 和 uses-permission 有啥区别?
Posted
技术标签:
【中文标题】android:uses-permission 和 uses-permission 有啥区别?【英文标题】:What is the difference between android:uses-permission and uses-permission?android:uses-permission 和 uses-permission 有什么区别? 【发布时间】: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 第二个是我添加的,因为应用程序不断崩溃并抱怨没有权限。
【参考方案1】:
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
实际上,API 级别 18 及更低级别,Android 4.4(API 级别 19)需要此权限,当您的应用想要写入自己的应用程序特定目录时,您的应用不再需要请求 WRITE_EXTERNAL_STORAGE
权限在外部存储上(getExternalFilesDir()
提供的目录。
【讨论】:
这种情况在我们使用eclipse的时候是看不到的。此链接中没有讨论任何内容developer.android.com/guide/topics/manifest/…以上是关于android:uses-permission 和 uses-permission 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
第三十一节:扫盲并发和并行同步和异步进程和线程阻塞和非阻塞响应和吞吐等
shell中$()和 ` `${}${!}${#}$[] 和$(()),[ ] 和(( ))和 [[ ]]
Java基础8---面向对象代码块和继承和this和super和重写和重载和final
Java基础8---面向对象代码块和继承和this和super和重写和重载和final
JS中some()和every()和join()和concat()和pop(),push(),shift(),unshfit()和map()和filter()