【问题标题】:Android ACCESS_LOCATION_EXTRA_COMMANDS permission usesAndroid ACCESS_LOCATION_EXTRA_COMMANDS 权限使用
【发布时间】:2012-04-12 15:47:17
【问题描述】:

Android 包含一个名为“ACCESS_LOCATION_EXTRA_COMMANDS”的权限。正常位置命令将涉及访问粗略/精细位置。有谁知道这个权限允许应用访问什么样的额外命令?

谢谢。

【问题讨论】:

  • 您可以在google group discussions 找到有关 3 个命令的更多信息,其中讨论了三个命令: locationManager.sendExtraCommand("gps", "delete_aiding_data", null);捆绑捆绑 = 新捆绑(); locationManager.sendExtraCommand("gps", "force_xtra_injection", bundle); locationManager.sendExtraCommand("gps", "force_time_injection", bundle); 如果有人能对每个额外的内容进行更多说明,那就太棒了

标签: android permissions


【解决方案1】:

我只知道在 GPS 定位较慢时可以使用的 1 个命令:

((LocationManager)YourActivity.this.getSystemService("location")).sendExtraCommand("gps", "delete_aiding_data", null);

在清单中:

<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

【讨论】:

    【解决方案2】:

    在Android源码中粗略搜索,表明LocationManager.sendExtraCommand()正是需要这个权限。

    文档:sendExtraCommand(java.lang.String, java.lang.String, android.os.Bundle)

    【讨论】:

      【解决方案3】:

      转到https://cs.android.com/android/platform/superproject/+/master:frameworks/base/services/core/java/com/android/server/location/provider/AbstractLocationProvider.java;drc=master;bpv=1;bpt=1;l=353,如果在底部没有看到“参考”面板,请单击onExtraCommand,向下滚动到“覆盖方式”,然后单击每个实现以查看它支持的命令。

      这是GnssLocationProvider 支持的命令列表(因为所有其他实现似乎什么都不做或委托给另一个实现):

      • delete_aiding_data:致电deleteAidingData
      • force_time_injection:致电requestUtcTime
      • force_psds_injection:如果mSupportsPsds 为真,则发送DOWNLOAD_PSDS_DATA 消息
      • request_power_stats:致电requestPowerStats

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-02
        • 2016-02-29
        • 2013-08-24
        • 2016-07-03
        相关资源
        最近更新 更多