gpt4 book ai didi

Android 位置监听器不工作

转载 作者:行者123 更新时间:2023-11-29 19:29:01 24 4
gpt4 key购买 nike

我想获取当前设备位置并使用以下命令打开 Google map :

  if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new MyLocationListener();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10, locationListener);


} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, MY_LOCATION_REQUEST_CODE);
}




private class MyLocationListener implements LocationListener {

@Override
public void onLocationChanged(Location loc) {

longitude = loc.getLongitude();
latitude = loc.getLatitude();

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?saddr=" + latitude + "," + longitude + "&daddr=55.877526, 26.533898"));
startActivity(intent);
}

@Override
public void onProviderDisabled(String provider) {
}

@Override
public void onProviderEnabled(String provider) {
}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}

但这段代码不起作用:由于某些原因,监听器被忽略了。

为什么以及如何解决?

最佳答案

"Why..."

因为 requestLocationUpdates() 是一个异步操作,结果(位置)在 onLocationChanged() 回调中返回。该位置无法立即使用。

"...and how to fix it ?"

将您的 Google map Intent 代码移至此处:

@Override
public void onLocationChanged(Location loc) {

longitude = loc.getLongitude();
latitude = loc.getLatitude();

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?saddr=" + latitude + "," + longitude + "&daddr=55.877526, 26.533898"));
startActivity(intent);

}

关于Android 位置监听器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40576882/

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