如何获取当前的经纬度并在吐司中显示?
Posted
技术标签:
【中文标题】如何获取当前的经纬度并在吐司中显示?【英文标题】:How to get current latitude and longitude and show in a toast? 【发布时间】:2020-04-08 17:54:52 【问题描述】:您好,我知道这个问题已经存在,但直到现在还没有得到我的解决方案。我尝试了很多方法来使用 java 在 android studio 中获取当前位置,但都显示相同的消息 location is null 并且纬度经度显示 0.0/0.0
如果有人知道解决此问题的完美解决方案吗?
【问题讨论】:
你能发布你正在遵循的解决方案吗? 你是用模拟器还是真机? 你有没有看***.com/questions/17591147/… 我在真实设备中测试 【参考方案1】:您可以使用 LocationManager。
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double longitude = location.getLongitude();
double latitude = location.getLatitude();
对 getLastKnownLocation() 的调用不会阻塞 - 这意味着如果当前没有可用的位置,它将返回 null - 所以您可能想看看将 LocationListener 传递给 requestLocationUpdates() 方法,这将给出你异步更新你的位置。
private final LocationListener locationListener = new LocationListener()
public void onLocationChanged(Location location)
longitude = location.getLongitude();
latitude = location.getLatitude();
Toast.makeText(this, "longitude " + longitude + "latitude " + latitude, Toast.LENGTH_SHORT).show();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 10, locationListener); 如果您想使用 GPS,您需要为您的应用授予 ACCESS_FINE_LOCATION 权限。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
您可以在 GPS 不可用时添加 ACCESS_COARSE_LOCATION 权限,并使用 getBestProvider() 方法选择您的位置提供商。
【讨论】:
以上是关于如何获取当前的经纬度并在吐司中显示?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 CLLocationManager-Swift 获取当前的经度和纬度