如何查找安卓应用需要哪些权限

10

我该如何找出需要在Android清单文件中添加哪些权限呢?实际上,什么时候需要在清单文件中添加权限以及如何确定在安装应用程序之前我的应用程序是否真的需要在清单文件中添加某些权限?能否从导入的包中找出权限?例如,在代码中添加"import android.app.AlarmManager;",是否有任何方法可以找出我们需要添加"uses-permission android:name="com.android.alarm.permission.SET_ALARM" 权限在清单文件中?

我的大问题是:我的应用程序运行良好,但当用户升级到新的Android版本时,我的应用程序无法正常工作,我需要找出从我的清单文件中丢失了哪些权限。(例如,我们不需要在Android 2.2中访问SD卡的任何权限,但在Android 4.0中,我们需要在清单文件中添加权限)。提前致谢。


1
我猜Android Studio很聪明,当我们使用需要在AndroidManifest.xml中添加权限的包时,会显示一个警告消息要求我们添加适当的权限。 - Suhas
@Suhas,很不幸,我正在使用Eclipse。如果Android Studio检测到权限问题,我必须从Eclipse迁移到它,非常感谢! - coder
2个回答

6
如何找出我需要在清单中添加哪些权限? 有时,权限是有文档记录的,例如需要这些权限的类和方法的JavaDocs。 有时,权限没有很好地记录。您通过测试或在其他地方(例如Stack Overflow的问题和答案)发现需要它们的笔记。 偶尔,IDE(例如Android Studio)或构建过程(例如具有Lint检查的Gradle)会在编译时抱怨缺少权限。通常,这些是针对已记录的权限要求。话虽如此,在发布应用程序之前运行手动的Lint检查(在Android Studio中的“检查代码”)是一个好主意。
如何找出我的应用真的需要在安装到设备上之前添加一些权限? 测试。
是否有可能从导入的包中找出权限? 权限通常不与Java包相关联。
例如,是否有任何方法可以找出我们需要添加“uses-permission android:name =“com.android.alarm.permission.SET_ALARM”权限在清单中,因为我们在代码中添加了“import android.app.AlarmManager;”? 您不需要使用SET_ALARM,因为您正在导入AlarmManager。没有import语句需要权限。
但当用户将手机升级到新的Android版本时,我的应用程序无法正常工作。 快速测试您的应用程序在新版本的Android上如何工作,因为这些版本发布后立即进行测试。当您获得开发者预览版的访问权限时 - 如开发人员在Android 5.0和6.0之前 - 在这些开发者预览版上进行测试。

哦!非常感谢!回答非常详细!我很惊讶因为在不到5分钟内就得到了快速的回答!谢谢! - coder

1

使用开发模式时,AndroidStudio的logcat会发出警告,当尝试使用需要权限但未能正常工作的内容时,它实际上会询问您是否已将权限添加到清单中。


谢谢,我必须从Eclipse迁移到Android Studio! - coder
曾经有过这样的经历,当新项目出现错误时,我会离开Eclipse.. ^^",你不会后悔的。 - Moisés

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接