这就是我获得纬度和经度的方法。
Criteria criteria = new Criteria();
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
String provider = locationManager.NETWORK_PROVIDER;
Location location = locationManager.getLastKnownLocation(provider);
if(location==null)
{
//do nothing
}else
{
double longitude = location.getLongitude();
double latitude = location.getLatitude();
saveCoordinates(location); // there goes another method
}
这是权限列表 在我的设备上一切正常,但在其他设备(如平板电脑),这不会返回任何坐标.. 据我所知,它询问gps和网络坐标,这段代码不会返回任何内容。 但是当他们使用谷歌地图等其他应用时,他们的位置就会正确确定。
那么,我怎样才能获得坐标?
答案 0 :(得分:1)
您必须要求新的位置。在else语句中添加以下内容
LocationListener ll = new mylocationlistener();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
这超出了你的功能。
private class mylocationlistener 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(MainActivity.this,
location.getLatitude() + "" + location.getLongitude(),
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) {
}
}
注意: - 强>
您也可以随时向活动添加implements LocationListener
,而不是创建新课程。那么你也将获得上述4功能。添加相同的代码。