Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在前台服务中获取gps坐标_Java_Android_Android Gps_Fusedlocationproviderapi - Fatal编程技术网

Java 在前台服务中获取gps坐标

Java 在前台服务中获取gps坐标,java,android,android-gps,fusedlocationproviderapi,Java,Android,Android Gps,Fusedlocationproviderapi,我已经实现了一个服务,在这个服务中,我需要获取坐标并将它们发送到服务器。即使在打瞌睡模式下,该服务也应该工作。我打瞌睡解决了这个问题。但是,如果设备被阻止,将向服务器发送相同的坐标。我使用fusedlocationproviderclient。getLastLocation。这就是它发送最后一个坐标的原因。该服务通过AlarmManager工作,它调用onStartCommand,并调用方法获取坐标并将其发送到服务器。有没有一种不需要回调的实现方法。 如何使它在调用该方法时获得新的坐标? 我的方

我已经实现了一个服务,在这个服务中,我需要获取坐标并将它们发送到服务器。即使在打瞌睡模式下,该服务也应该工作。我打瞌睡解决了这个问题。但是,如果设备被阻止,将向服务器发送相同的坐标。我使用fusedlocationproviderclient。getLastLocation。这就是它发送最后一个坐标的原因。该服务通过AlarmManager工作,它调用onStartCommand,并调用方法获取坐标并将其发送到服务器。有没有一种不需要回调的实现方法。 如何使它在调用该方法时获得新的坐标? 我的方法:

private void addListenerLocation()
{
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) 
        fusedLocationProviderClient.getLastLocation().addOnCompleteListener(new OnCompleteListener<Location>() {
            @Override
            public void onComplete(@NonNull Task<Location> task) {
                Location location = task.getResult();
                if (location != null) {
                    currentLon = location.getLongitude()currentLat = location.getLatitude();
                }
            }
        });
}
private void addListenerLocation()
{
if(ActivityCompat.checkSelfPermission(this,Manifest.permission.ACCESS\u FINE\u LOCATION)==PackageManager.permission\u已授予)
fusedLocationProviderClient.getLastLocation().addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
位置=task.getResult();
如果(位置!=null){
currentLon=location.getLength()currentLat=location.getLatitude();
}
}
});
}