【发布时间】:2019-04-27 05:37:54
【问题描述】:
我正在尝试使用FusedLocationProviderClient 来获取当前位置的纬度和经度。到目前为止我的代码如下:
清单
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
布局:有一个按钮
build.gradle
implementation 'com.google.android.gms:play-services-location:16.0.0'
Java
ArrayList<String> Coord_Array;
OnCreate 方法内部
private FusedLocationProviderClient client;
client = LocationServices.getFusedLocationProviderClient( ShowOutletParams.this );
Coord_Array = new ArrayList<String>();
在 OnCreate 方法之外 - 我在按钮 onclicklistener 内使用getLocation()
private String getLocation() {
if (ActivityCompat.checkSelfPermission( ShowOutletParams.this, Manifest.permission.ACCESS_FINE_LOCATION ) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission( ShowOutletParams.this, Manifest.permission.ACCESS_COARSE_LOCATION ) != PackageManager.PERMISSION_GRANTED) {
return;
}
client.getLastLocation().addOnSuccessListener( ShowOutletParams.this, new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
if (location != null) {
String locat = location.toString();
String lat = locat.substring(15,24);
String longi = locat.substring(25,34);
Coord_Array.add(lat);
Coord_Array.add(longi);
//return Coord_Array;
}
}
} );
}
当我添加 Log.i 来记录 lat 和 long 值时,我可以在日志中看到它们,但是我希望将它们保存为字符串,以便以后使用。
我知道void 不会返回任何东西....但是Coord_Array 也不会返回或打印经纬度。
【问题讨论】: