要从 NETWORK_PROVIDER 检索位置,您可以使用以下命令:
LocationListener locationListenerNetwork = new LocationListener() {
public void onLocationChanged(Location location) {
timer1.cancel();
locationResult.gotLocation(location);
lm.removeUpdates(this);
lm.removeUpdates(locationListenerGps);
}
public void onProviderDisabled(String provider) {}
public void onProviderEnabled(String provider) {}
public void onStatusChanged(String provider, int status, Bundle extras) {}
};
LocationManager lm;
if(lm==null)
lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
然而,这是一个基本示例,因此要区分 wi-fi 和 3g 网络,请先查看此处,然后再执行上述代码:
获得您想要的东西的一种特定方法如下:
ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
State mobile = conMan.getNetworkInfo(0).getState();
State wifi = conMan.getNetworkInfo(1).getState();
之后,您可以通过以下方式区分它们:
if (mobile == NetworkInfo.State.CONNECTED || mobile == NetworkInfo.State.CONNECTING) {
//mobile
} else if (wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING) {
//wifi
}
检查手机或wifi是否已连接,如果wifi-则使用PASSIVE_PROVIDER
,如果手机-使用NETWORK_PROVIDER
。
我希望所有这些信息对你有用。