伙计们。我有问题,因为我是Android Dev的初学者。我需要获取用户的GPS数据并将其写入数据库,但是我不知道该怎么做。如果我尝试将数据写入变量,Android Studio会说到错误“变量是从内部类内部访问的,需要声明为final”。
import static android.Manifest.permission.ACCESS_FINE_LOCATION;
public class LogsHelper extends Service {
public String action;
public String item;
FusedLocationProviderClient client;
Context context;
double lat;
double lon;
LatLng latLng;
protected Location location;
Activity activity;
public LogsHelper(String item, Context context, Activity activity) {
this.item = item;
this.context = context;
this.activity = activity;
}
public void onCreate() {
super.onCreate();
}
public void createLog(String old_item, String new_item, int action){
this.getCoordinates();
}
public double[] getCoordinates(){
double[] latLong = new double[2];
requestPermission();
client = LocationServices.getFusedLocationProviderClient(activity);
client.getLastLocation().addOnCompleteListener(activity, new OnCompleteListener<Location>() {
@Override
public void onComplete(@NonNull Task<Location> task) {
if(task.isSuccessful() && task.getResult() != null){
/*There is a problem*/
location = task.getResult();
}
}
});
return latLong;
}
private void requestPermission(){
ActivityCompat.requestPermissions(activity, new String[]{ACCESS_FINE_LOCATION}, 1);
}
}
答案 0 :(得分:0)
位置具有两个主要属性:经度和纬度。这两个数字的组合代表一个位置。
if(location!= null){
double latitude = location.getLatitude(); double longitude = location.getLongitude();
}
那么您可以将这2个属性存储在DB上,还有其他问题吗?