2

我知道这是一个简单的问题,但我找不到任何答案。实际上这是三个相关的问题:

  1. 如果我的代码需要uses-permission清单元素,Eclipse 会自动将其添加到清单中吗?

  2. 如果 Eclipse 没有自动添加它,我怎么知道我的应用需要哪些权限?当然有这个列表,但是很难通过这个列表检查我的应用程序的功能是否属于这些权限中的每一个。

  3. 如果 Eclipse 没有自动添加权限,而我没有添加,我将如何发现?应用程序会无法在模拟器上安装吗?它会安装在模拟器上,但在尝试访问它没有权限的东西时会被强制关闭吗?还是我必须在真实设备上安装apk才能找到?

4

3 回答 3

3

如果我的代码需要使用权限清单元素,Eclipse 会自动将其添加到清单中吗?

不。

我如何知道我的应用需要哪些权限?

通常,通过阅读 JavaDocs,它可以很好地指出您需要哪些权限。否则,您会在测试中发现,当您的应用程序因SecurityException.

如果 Eclipse 没有自动添加权限,而我没有添加,我将如何发现?

看上面。

它会安装在模拟器上,但在尝试访问它没有权限的东西时会被强制关闭吗?

正确的。

于 2013-08-16T18:27:11.450 回答
2

Eclipse 不会自动添加权限。但是,如果您尝试使用需要权限的功能,您意识到缺少权限。以下是 android 资源页面的摘录Permissions链接

通常,权限失败会导致 SecurityException 被抛出回应用程序。但是,这并不能保证在任何地方都会发生。例如,sendBroadcast(Intent) 方法在方法调用返回后,在将数据传送到每个接收者时检查权限,因此如果权限失败,您将不会收到异常。然而,在几乎所有情况下,权限失败都会打印到系统日志中。

您的第三个问题由以下人员回答:

然而,在几乎所有情况下,权限失败都会打印到系统日志中。

以防万一你想知道你会在 Logcat 中看到什么:

11-20 08:08:47.766: E/AndroidRuntime(9380): java.lang.SecurityException: 需要蓝牙权限:用户 10111 和当前进程都没有 android.permission.BLUETOOTH。

于 2013-08-16T18:31:15.970 回答
1

Eclipse 不会自动添加uses-permission到您的清单中。我曾经忘记添加权限,并且当我的应用程序到达那部分代码时失败了。我不记得确切的错误,但它确实提到使用我尝试使用的方法需要许可,我相信它告诉我什么许可。

如果您不添加一个,那么您很快就会发现。

于 2013-08-16T18:27:40.650 回答