我知道这是一个简单的问题,但我找不到任何答案。实际上这是三个相关的问题:
如果我的代码需要uses-permission
清单元素,Eclipse会自动将其添加到清单吗?
如果Eclipse没有自动添加它,我怎么知道我的应用需要哪些权限?当然有this list,但很难通过此列表检查我的应用程序是否属于这些权限范围内。
如果Eclipse没有自动添加权限而我没有做到,我怎么知道?该应用程序无法在模拟器上安装吗?它会安装在模拟器上,但在尝试访问它没有权限的东西时强行关闭吗?或者我必须在真实设备上安装apk才能找到?
答案 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
添加到您的清单中。我曾经忘记添加权限,并且当我的应用程序到达代码部分时,我的应用程序失败了。我不记得确切的错误,但它确实提到使用我尝试使用的方法需要许可,我相信它告诉我什么许可。
如果你不添加一个,你很快就会发现。