我正在研究一个没有GPS芯片的Android M机顶盒。在Android的位置设置中,我有三个位置支持选项--高精度,低Bat,仅GPS。系统默认为高精度模式。
这里的问题是,当从后台服务调用wifi.getScanResults()并且启用了一个需要GPS的定位模式时,我得不到任何结果。从前台应用程序调用工作正常,只有后台服务受此影响。当我将系统切换到位置模式低Bat (不需要全球定位系统)时,后台getScanResults()调用按预期工作。
我如何修改我的AOSP构建,以使高精度和GPS唯一的选择将不会呈现给用户,因为没有GPS芯片?
发布于 2017-04-29 06:07:15
您是否尝试过修改LocationManagerService类,使其不加载GPS提供程序?以下内容可能就是您要查找的内容。
发布于 2018-08-21 22:56:11
默认位置模式由frameworks/base/packages/SettingsProvider/res/values/defaults.xml中的def_location_providers_allowed设置。它的值可以是gps (仅全球定位系统)、network (节省电池)或gps,network (高精度)。
因此,您可以将def_location_providers_allowed设置为network (例如,在设备/供应商覆盖中),并在“设置和位置”中对用户禁用或隐藏“模式”选项,因为您只有一个选择(请参见packages/apps/Settings/res/xml/location_mode.xml)。
https://stackoverflow.com/questions/43611991
复制相似问题