Android 使用GPS和WIFI获取当前位置

Android 使用GPS和WIFI获取当前位置,android,gps,location,wifi,Android,Gps,Location,Wifi,我目前只使用GPS获取用户的当前位置,以返回某些结果。就像在比利时一样,如果你在里面,大多数时候你无法获得GPS连接。所以我想通过wifi连接获取当前位置 我发现了这个例子: 但是 我不确定哪些线路告诉设备要选择哪个连接。我猜是这样的:stringprovider=myLocationManager.getBestProvider(criteria,true)我必须添加到我的代码中 当我检查这里面的东西时,我总是得到一个空值,我不太明白为什么 我的代码当前如下所示: public void ge

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

我发现了这个例子: 但是

我不确定哪些线路告诉设备要选择哪个连接。我猜是这样的:
stringprovider=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);
}

如果要从特定提供商处获取更新,可以使用
位置管理器的方法
。可以使用该方法获取可用提供程序的列表。

您使用的是LocationManager getbestprovider方法,该方法仅获取与您的条件最匹配的任何位置提供程序。 如果要获取特定的位置提供程序,请使用getProvider方法。该参数应该是getProviders方法的结果之一。 一些链接:

更新是什么意思?(英语不是我的母语)我只想知道我现在所在位置的经纬度。我发现了另一个例子:实现这一点是否有助于我前进?位置提供商(如GPS)将向LocationListener对象提供位置更新(纬度、经度、时间、精度等)。这些更新在您调用requestLocationUpdates方法时启动,并将定期继续,直到您调用removeUpdates方法。因此,如果我理解您的意思,如果我的GPS未启用,应用程序将自动选择wifi(这是否已启用)来执行此操作?是的,您知道了!使用getProviders方法(参数true!)查看启用了哪些位置提供商。我已经在三星Galaxy Ace上进行了测试,当我关闭GPS和打开wifi(连接到开放的wifi)时,我的p变量为null…一个字符串变量,其中包含
locationManager.getBestProvider(新标准(),true)