Eclipse是否自动设置"使用权限"在清单?

时间:2013-08-16 18:24:56

标签: android eclipse android-manifest

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

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

  2. 如果Eclipse没有自动添加它,我怎么知道我的应用需要哪些权限?当然有this list,但很难通过此列表检查我的应用程序是否属于这些权限范围内。

  3. 如果Eclipse没有自动添加权限而我没有做到,我怎么知道?该应用程序无法在模拟器上安装吗?它会安装在模拟器上,但在尝试访问它没有权限的东西时强行关闭吗?或者我必须在真实设备上安装apk才能找到?

3 个答案:

答案 0 :(得分:3)

  

如果我的代码需要一个uses-permission清单元素,那么Eclipse会自动将它添加到清单吗?

没有

  

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

通常,通过阅读JavaDocs,它可以指出您需要的权限。否则,当您的应用与SecurityException崩溃时,您会发现测试结果。

  

如果Eclipse没有自动添加权限而我没有这样做,我将如何找到?

见上文。

  

是否会在模拟器上安装,但在尝试访问没有权限的内容时会强行关闭?

正确。

答案 1 :(得分:2)

Eclipse不会自动添加权限。但是,如果您尝试使用需要权限的功能,知道缺少的权限。以下是Permissions上的Android资源页面的摘录:Link

  

权限失败通常会导致SecurityException   被扔回应用程序。但是,这不能保证   到处都有。例如,sendBroadcast(Intent)方法   在将数据传递给每个接收器之后检查权限   方法调用已返回,因此如果您不会收到异常   有权限失败。然而,在几乎所有情况下,a   权限失败将打印到系统日志中。

您的第三个问题的回答是:

  

但是,几乎在所有情况下,都会打印许可失败   系统日志。

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

  

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

答案 2 :(得分:1)

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

如果你不添加一个,你很快就会发现。