如何找出Android应用程序需要的权限

时间:2015-11-18 17:46:45

标签: android permissions

如何找到我需要在应用程序的清单中添加哪些权限?实际上,当我需要在清单中添加权限以及如何找出我的应用程序时,确实需要在清单中添加一些权限才能在设备上安装它?是否可以从导入的包中找出权限?例如,有没有办法找出我们需要在清单中添加“uses-permission android:name =”com.android.alarm.permission.SET_ALARM“权限,因为我们添加了”import android.app.AlarmManager;“代码?

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

2 个答案:

答案 0 :(得分:4)

  

如何找到我需要在应用程序的清单中添加哪些权限?

有时,会记录权限,例如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之前 - 测试这些开发人员预览。

答案 1 :(得分:1)

AndroidStudio logcat在开发模式下使用aplication时会发出警告,它实际上会询问您是否在尝试使用需要权限且无法工作的内容时将权限添加到清单中。