如何将位置GPS数据写入变量Android Studio

时间:2018-09-26 15:58:17

标签: java android gps

伙计们。我有问题,因为我是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);
    }
}

1 个答案:

答案 0 :(得分:0)

位置具有两个主要属性:经度纬度。这两个数字的组合代表一个位置。

  

if(location!= null){

double latitude = location.getLatitude();

double longitude = location.getLongitude();   
     

}

那么您可以将这2个属性存储在DB上,还有其他问题吗?