【发布时间】:2019-07-05 11:29:27
【问题描述】:
我正在尝试使用 LocationManager 和 LocationListener 获取用户的当前位置。但没有获得任何价值。
下面是我在 Java 中使用的代码:
// activity is implementing LocationListener
private LocationManager locationManager;
// in onCreate() method.
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
requestLocationPermission();
return;
}
else {
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
}
//outside onCreate()
@Override
public void onLocationChanged(Location location) {
double longitude = location.getLongitude();
double latitude = location.getLatitude();
NavProfileLocation.setText(String.valueOf(longitude)+" AND "+String.valueOf(latitude));
Toast.makeText(MainActivity.this,String.valueOf(longitude)+" AND "+String.valueOf(latitude),Toast.LENGTH_LONG).show();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(intent);
}
我想使用当前用户的 GPS 获取纬度和经度。
【问题讨论】:
-
日志有错误吗?你检查权限了吗?
-
是的,我检查了。用户已授予所有权限。
-
您的具体问题是什么?是否调用了 onLocationChanged?
-
@RajatMehra 没有。不叫。这是主要问题
标签: java android location locationmanager