【问题标题】:How to find out which permission an android application needs如何找出android应用程序需要哪些权限
【发布时间】:2015-11-19 02:03:14
【问题描述】:

如何找出我需要在清单中为我的应用程序添加哪些权限?实际上,何时我需要在清单中添加权限以及如何发现我的应用程序在将其安装到设备上之前确实需要在清单中添加一些权限?是否可以从导入的包中找出权限?例如,有什么方法可以找出我们需要在清单中添加 "uses-permission android:name="com.android.alarm.permission.SET_ALARM" 权限,因为我们添加了 "import android.app.AlarmManager;" 在代码中?

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

【问题讨论】:

  • 我猜Android Studio足够聪明,当我们使用需要在AndroidManifest.xml中添加权限的包时,会显示一条警告消息,要求您添加适当的权限
  • @Suhas ,不幸的是我正在使用 Eclipse。如果 Android Studio 检测到权限,我必须从 eclipse 迁移到它,非常感谢!

标签: android permissions


【解决方案1】:

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

有时,权限会记录在案,例如在需要这些权限的类和方法的 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 5.0 和 6.0 之前的开发者一样)测试这些开发者预览版。

【讨论】:

  • 哦!非常感谢!非常完整的答案!我很棒,因为在不到 5 分钟的时间内快速回答!谢谢!
【解决方案2】:

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

【讨论】:

  • 谢谢,我必须从 eclipse 迁移到 Android Studio!
  • 去过那里,当新项目已经创建错误时,我会离开 Eclipse.. ^^",你不会后悔的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-06
  • 2013-02-06
  • 1970-01-01
  • 1970-01-01
  • 2014-08-28
  • 1970-01-01
相关资源
最近更新 更多