安卓权限和API调用

4
  1. 两个不同的api调用需要不同的权限,能否产生相同的结果? 例如,从Android文档获取设备粗略位置,它是从网络位置推导出来的近似位置...是否可以使用另一个不需要ACCESS_COARSE_LOCATION权限的api调用来检索网络位置?

换句话说,根据Android文档,关于LocationManager,"位置提供程序定期报告设备的地理位置......一些提供程序需要GPS硬件和对多颗卫星的可见性;其他提供程序需要使用蜂窝电台或访问特定运营商的网络或互联网",并且都需要ACCESS_FINE_LOCATION或ACCESS_COARSE_LOCATION权限。 如果一个应用程序没有请求这些权限,而是请求ACCESS_NETWORK_STATE、ACCESS_WIFI_STATE和INTERNET,那么该应用程序是否可以推断位置?如果可以,有哪些API调用负责实现这一点?我阅读了API指南中的连接部分,并搜索了android.net.wifi下的类,但找不到会创建这种情况的内容。

  1. 是否有任何工作或资源将Android api调用按所需权限分组?例如,在ACCESS_COARSE_LOCATION权限下的所有api调用列表,在ACCESS_FINE_LOCATION权限下的所有api调用列表等等!

希望我清楚地表达了我的问题,谢谢!


你的问题对我来说没有意义。你能否澄清一下你想要实现什么?关于第一点,如果你可以在没有权限的情况下通过另一个API调用检索相同的信息,那么为什么还需要权限呢? - Leon Joosse
我添加了更多细节! - Jana
1个回答

1
  1. 根据文档:

注意:如果您同时使用NETWORK_PROVIDER和GPS_PROVIDER,则只需要请求ACCESS_FINE_LOCATION权限,因为它包括两个提供程序的许可。 (ACCESS_COARSE_LOCATION的权限仅包括NETWORK_PROVIDER的权限。)

您应该考虑到粗略位置(省电)不如精确位置(不省电),并且通常都需要这两种位置,因为用户可以决定启用设备网络位置并禁用GPS,您有责任优化应用程序,使其不会耗尽电池。以上信息(以及有关位置的更多信息)可以在此处找到http://developer.android.com/guide/topics/location/strategies.html

  1. 上面的链接提供了一些关于位置的解释和示例。

对于将来的参考,您可能会发现这个表格有用http://developer.android.com/guide/topics/manifest/uses-feature-element.html#features-reference


关于第一点,我很好奇是否真的存在这样的情况,即由不同权限保护的两个API调用可能会产生类似的结果!至于第二点,第二个链接确实有帮助!非常感谢! - Jana
我不能说我对Android开发了解一切,但是这个问题的答案可能是“不”。 - Cornel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接