我想构建一个使用cellular Network
和WiFi
提供当前位置的应用。
我喜欢同时从两个提供商处获取位置,然后决定哪个提供商给我最好的。
现在我从网络
获取位置LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener locationlistenerforNetwork = new mylocationlistenerNetwork();
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationlistenerforNetwork);
private class mylocationlistenerNetwork implements LocationListener {
@Override
public void onLocationChanged(Location location) {
if (location != null) {
Log.d("LOCATION CHANGED", location.getLatitude() + " ");
Log.d("LOCATION CHANGED", location.getLongitude() + " ");
Toast.makeText(LocationActivity.this,"latitude: "+
location.getLatitude() + "longitude: " + location.getLongitude()
+ " Provider:" + location.getProvider() + " Accuracy:" + location.getAccuracy(),
Toast.LENGTH_LONG).show();
}
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
}
我还想要WiFi
的位置。请帮忙。
答案 0 :(得分:1)
有这些提供者:
来自docs:
public static final String NETWORK_PROVIDER
网络位置提供商的名称。此提供商确定 位置基于手机信号塔和WiFi接入点的可用性。 通过网络查找检索结果。需要其中之一 权限android.permission.ACCESS_COARSE_LOCATION或 android.permission.ACCESS_FINE_LOCATION。
WiFi没有单独的提供商。使用NETWORK_PROVIDER
您确定的位置也基于WiFi接入点。