Android位置模式,没有GPS,AOSP中的选项

时间:2017-04-25 13:25:46

标签: android android-6.0-marshmallow android-source android-location

我正在使用没有GPS芯片的Android M STB。在Android设置,位置,我有三个位置支持选择 - 高精度,低蝙蝠,仅限GPS。系统默认为高精度模式。

这里的问题是,当从后台服务调用wifi.getScanResults()并且启用了需要GPS的其中一种位置模式时,我不会得到任何结果。该呼叫在前台应用程序中运行良好,只有后台服务受此影响。当我将系统更改为位置模式Low Bat(不需要GPS)时,后台getScanResults()调用按预期工作。

如何修改我的AOSP版本,以便因为没有GPS芯片而无法向用户显示高精度和仅GPS选项?

2 个答案:

答案 0 :(得分:0)

您是否尝试修改LocationManagerService课程,以便它不会加载GPS提供商?以下可能是您正在寻找的。

https://github.com/android/platform_frameworks_base/blob/nougat-release/services/core/java/com/android/server/LocationManagerService.java#L453

答案 1 :(得分:0)

默认位置模式由frameworks/base/packages/SettingsProvider/res/values/defaults.xml中的def_location_providers_allowed设置。其值可以是gps(仅GPS),network(省电)或gps,network(高精度)。

因此,您可以将def_location_providers_allowed设置为network(例如在设备/供应商叠加图中),并在 Settings < / em>→位置,因为您只有一个选择(请参见packages/apps/Settings/res/xml/location_mode.xml)。