我在Android应用程序中使用requestLocationUpdates
方法在我的设备位置发生变化时获取更新。我设置了Service
但是这个minTime = 0
方法在经过很长时间的延迟(即10到15分钟,甚至更长时间)之后提供更新。有时当我运行我的应用程序requestLocationUpdates
时,mehod根本不提供任何更新。并且很少次(非常罕见)此requestLocationUpdates
方法按预期运行(连续更新,延迟时间为0秒)。那可能是什么问题呢?每次运行我的应用程序时,如何连续更新?
HelloService.java
requestLocationUpdates
LocationDetector.java
public class HelloService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
new Thread(new Runnable() {
@Override
public void run() {
new Handler(getMainLooper()).post(new Runnable() {
@Override
public void run() {
LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (Build.VERSION.SDK_INT >= 23 && ContextCompat.checkSelfPermission(MainActivity.context, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(MainActivity.context, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
else {
manager.requestLocationUpdates("gps", 0, 0, new LocationDetector());
Toast.makeText(MainActivity.ctx, "Service Started...", Toast.LENGTH_LONG).show();
}
}
});
}
}).start();
return Service.START_STICKY;
}
}
答案 0 :(得分:1)
我尝试了在笔记本电脑上创建新项目并在手机上运行的整个代码。
结果:它正在工作,手机上的GPS TTF差不多15秒。
您是否尝试过其他设备?
gps图标怎么样?出现了,消失了?
尝试融合位置提供商,看看会发生什么,link