Raj*_*a45 9 gps android google-maps location-provider google-maps-android-api-2
我正在使用Fused Location Provider开发应用程序.我有个疑问.为了定期获取位置,它使用requestLocationUpdates().但是从哪个来源获取WIFI或GPS或网络的位置.在我的应用程序中,仅当WiFi处于开启状态时,它才会定期获取位置.当WiFi处于关闭状态时,它无法获得该位置(它应该从GPS或网络的其他来源获得位置.但它永远不会获得位置.或者我必须为GPS和网络编写听众).我不知道是什么问题.谁能帮我.
并且,它是否仅适用于所有提供商(Wifi,GPS,网络)或其他.
public void checkPlay(){
int resp = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if (resp == ConnectionResult.SUCCESS) {
locationClient = new LocationClient(this, this, this);
locationClient.connect();
} else {
Toast.makeText(this, "Google Play Service Error " + resp,
Toast.LENGTH_LONG).show();
}
}
public void onConnected(Bundle arg0) {
// TODO Auto-generated method stub
if (locationClient != null && locationClient.isConnected()) {
locationRequest = LocationRequest.create();
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setInterval(100);
locationClient.requestLocationUpdates(locationRequest, this);
}
}
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
try {
if (location != null) {
lat = location.getLatitude();
long = location.getLongitude();
}
} catch (Exception e) {
Log.d(Fots.TAG,
"GpsTrackService.mGpsLocationListener.onLocationChanged", e);
}
}
Run Code Online (Sandbox Code Playgroud)
Fused API提供3个位置提供程序.
HIGH_ACCURACY模式使用所有位置提供商,但是,它优先考虑位置提供商,并包括GPS和位置提供商.定位精度大约在10米范围内.
BALANCED_POWER模式将GPS排除在其位置提供商列表之外,并使用其他提供商,包括手机信号塔,wifi等.在这种情况下,位置精度约为40米.
NO_POWER不使用任何位置提供程序,而是从其他应用程序获取位置的被动模式.准确度可能是一英里或更长.它完全基于最近由其他应用程序获取的位置.
如果您在示例中使用 PRIORITY_HIGH_ACCURACY,它将使用所有可用的源(wifi、手机、gps 和内部传感器)。如果您关闭 wifi 并且在室内,则可能无法获得 GPS 锁定(一般来说,GPS 在室内不起作用,除非在某些区域靠近窗户时)。如果 wifi、手机和 GPS 不可用(因为它们在设置中被关闭,或者它们在您的特定位置不可用),它不会返回位置(仅内部传感器不足以创建从头开始的位置)。
| 归档时间: |
|
| 查看次数: |
14683 次 |
| 最近记录: |