是否可以通过ADB或终端仿真器启用定位服务(GPS或Google NetworkLocation)?我正在扎根电话。
要点:是否还可以更改其他与系统相关的设置?
是否可以通过ADB或终端仿真器启用定位服务(GPS或Google NetworkLocation)?我正在扎根电话。
要点:是否还可以更改其他与系统相关的设置?
Answers:
是否可以通过ADB或终端仿真器启用定位服务(GPS或Google NetworkLocation)?
该命令是:
adb shell settings put secure location_providers_allowed gps
哪里,
settings
会使得变成settings.db
(部分com.android.providers.settings
)put
是location_providers_allowed
用gps
表中的值更新键secure
。上述命令不会启用Google的位置服务。为了也启用它,请发出命令:
adb shell settings put secure location_providers_allowed gps,network
系统会显示一个弹出窗口,表示您同意位置服务。在我的Android 4.2.1中,我必须通过GUI或input keyevent
每次从头启用服务时都同意。
但是,在我的Android 5.0中,我可以将设置保存在对话框中,并且命令执行可以使下次的工作变得完美。
某些设备(例如棒棒糖设备)具有三种“位置”模式,并且在上述命令中要传递的相关值为:
gps,wifi,network
或gps,network
(如果您不希望启用Wi-Fi)wifi,network
或network
仅gps
adb shell settings put secure location_providers_allowed ' '
是否还可以更改其他与系统相关的设置?
见:
但是我已经有了一个很好的主意settings put
。
location_providers_allowed
弃用有关(developer.android.com/reference/android/provider/…)。有想法吗?
adb shell am start -a android.settings.LOCATION_SOURCE_SETTINGS
,然后单击切换按钮。
对于Android 6.0
启用使用:
对于GPS: adb shell settings put secure location_providers_allowed +gps
对于网络: adb shell settings put secure location_providers_allowed +network
禁用:
全球定位系统 : adb shell settings put secure location_providers_allowed -gps
对于网络: adb shell settings put secure location_providers_allowed -network
Android定位服务具有不同的选项:
1)高精度: gps, network
启用:
adb shell settings put secure location_providers_allowed +gps,network
禁用:
adb shell settings put secure location_providers_allowed -gps,network
2)仅电话: gps
启用:
adb shell settings put secure location_providers_allowed +gps
禁用: adb shell settings put secure location_providers_allowed -gps
3)节省电池: network
启用:
adb shell settings put secure location_providers_allowed +network
禁用: adb shell settings put secure location_providers_allowed -network
location_providers_allowed
不再适用于Android 10(API级别29)。
相反,您可以将设置location_mode
为LOCATION_MODE_HIGH_ACCURACY
,值为3:
adb shell settings put secure location_mode 3
注意: > v29可能无法正常工作,因为位置模式中的文档已提及以下内容:
在API级别28中不推荐使用此常量。检查位置模式和侦听更改的首选方法是通过
LocationManager#isLocationEnabled()
和LocationManager#MODE_CHANGED_ACTION
。
不知道一旦常量消失,通过shell进行编程的方式是什么。