我使用新的设置API打开GPS而不离开我的应用程序。 http://android-developers.blogspot.in/2015/03/google-play-services-70-places-everyone.html 我有这个locationRequest与PRIORITY_HIGH_ACCURACY使用GPS。
final LocationRequest locationRequest = LocationRequest.create()
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
.setInterval(DriverApplication.TRACE_MAX_INTERVAL)
.setMaxWaitTime(DriverApplication.TRACE_MAX_INTERVAL*2)
.setFastestInterval(DriverApplication.TRACE_FASTEST_INTERVAL);
但GMS位置不使用GPS只会出现打开WiFi的消息。我试图删除忘记所有WiFi网络和来自GMS的消息被更改并添加来自谷歌的请求收集匿名位置数据并发送它.. 如果WiFi关闭,如何跳过此消息?
来自LocationRequest文档:
请求的优先级是对LocationClient的强烈提示 要使用哪个位置来源。例如,PRIORITY_HIGH_ACCURACY是 更有可能使用GPS,PRIORITY_BALANCED_POWER_ACCURACY更多 可能会使用WIFI&细胞塔的定位,但也取决于 许多其他因素(例如哪些来源可用)和 依赖于实现。
PRIORITY_HIGH_ACCURACY更有可能使用GPS - 如果GPS启用,为什么需要发送用户信息以启用WiFi?这不取决于GPS坐标的准确性。每次启用GPS时,设置API显示对话框以启用WiFi。
答案 0 :(得分:4)
请参阅LocationSettingsStates。isGpsUsable()。
LocationSettingsStates locationSettingsStates = locationSettingsResult.getLocationSettingsStates();
if (!locationSettingsStates.isGpsPresent() || !locationSettingsStates.isGpsUsable()) {
Status status = locationSettingsResult.getStatus();
if (status.getStatusCode() == LocationSettingsStatusCodes.RESOLUTION_REQUIRED) {
try {
status.startResolutionForResult(StilActivity.this, REQUEST_CHECK_SETTINGS);
}
catch (IntentSender.SendIntentException th) {
Log.e(TAG, "Error opening settings activity.", th);
}
}
}
答案 1 :(得分:0)
PRIORITY_HIGH_ACCURACY表示您正在尝试从设备GPS,Wifi和移动网络中获取位置。