gpt4 book ai didi

android - 通过 3g 更新位置

转载 作者:太空宇宙 更新时间:2023-11-03 12:57:02 24 4
gpt4 key购买 nike

我正在开发一个 android 应用程序,每 30 秒检索一次数据并发送到服务器,因此移动互联网是必要的。

目前,我正在使用 GPS,但我也想使用网络提供商(wifi 和手机信号塔)。

但我的问题是 android 如何通过 wifi 检索位置信息?如果位置可以从 wifi 检索,那么它是否可以从我的移动互联网本身检索?

如果不是那么为什么?如果是,请向我展示一些代码 fragment 以从移动互联网检索位置更新,以及大概的准确度是多少?我需要精度在 100 米以内。

我跟着这些,得到了这个疑问http://developer.android.com/guide/topics/location/strategies.html Is android application able to retrieve location info from connected WiFi hotspot AP?

最佳答案

要从 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 网络,请先查看 here在上面的代码之前:

获取所需内容的一种特定方法如下:

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

希望所有这些信息对您有用。

关于android - 通过 3g 更新位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18268329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com