【问题标题】:Get current position with GPS AND WIFI使用 GPS 和 WIFI 获取当前位置
【发布时间】:2011-05-06 08:00:45
【问题描述】:

我目前仅使用 GPS 来获取用户的当前位置以返回某些结果。就像在比利时一样,如果你在里面,大部分时间你都无法获得 GPS 连接。所以我想通过wifi连接获取当前位置。

我找到了这个例子:get the current location (gps/wifi) 但是

我不确定哪些线路告诉设备选择哪个连接。我猜是这个:String provider = myLocationManager.getBestProvider(criteria,true); 我必须添加到我的代码中。

当我检查其中的内容时,我总是得到一个空值,我不太明白为什么。

我的代码目前看起来像这样:

public void getOwnLngLat(){
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
final LocationListener locationListener = new LocationListener(){

public void onLocationChanged(Location location) {
    // TODO Auto-generated method stub
    longitude="" + location.getLongitude();
    latitude="" + location.getLatitude();
}

public void onProviderDisabled(String provider) {
    // TODO Auto-generated method stub

}

public void onProviderEnabled(String provider) {
    // TODO Auto-generated method stub

}

public void onStatusChanged(String provider, int status,
                Bundle extras) {
    // TODO Auto-generated method stub

   }        
};
locationManager.requestLocationUpdates(locationManager.getBestProvider(new Criteria(), true), 2000, 10, locationListener);
}

【问题讨论】:

    标签: android gps location wifi


    【解决方案1】:

    您正在使用 locationmanagers getbestprovider 方法,该方法仅获取与您的条件最匹配的任何位置提供程序。 如果您想获取特定的位置提供程序,请使用 getProvider 方法。该参数应该是 getProviders 方法的结果之一。 一些链接: http://developer.android.com/guide/topics/location/obtaining-user-location.html http://developer.android.com/reference/android/location/LocationManager.html

    【讨论】:

    • 所以如果我理解你的话,如果我的 GPS 未启用,应用程序会自动选择 wifi(是否已启用)来解决问题?
    • 是的,你明白了!使用 getProviders 方法(参数 true!)查看启用了哪些位置提供程序。
    • 我已经在三星 Galaxy Ace 上对此进行了测试,当我关闭 GPS 并打开 wifi(我连接到开放的 wifi)时,我的 p 变量为空。 .
    • 一个包含locationManager.getBestProvider(new Criteria(), true); 的字符串变量
    【解决方案2】:

    如果您想从特定提供商处获取更新,您可以使用 LocationManagerrequestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener) 方法。可以使用getProviders(boolean enabledOnly) 方法获取可用提供程序的列表。

    【讨论】:

    • 更新是什么意思? (英语不是我的母语)我只想得到我当前位置的纬度和经度。我找到了另一个例子:stackoverflow.com/questions/3145089/… 实施这个会帮助我前进吗?
    • 位置提供者(例如 GPS)将向您的 LocationListener 对象提供位置更新(纬度、经度、时间、精度等)。这些更新在您调用 requestLocationUpdates 方法时开始,并将定期继续,直到您调用 removeUpdates 方法。
    猜你喜欢
    • 2011-02-11
    • 1970-01-01
    • 2016-12-01
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 1970-01-01
    相关资源
    最近更新 更多