我开发了一个应用程序,当模拟器A向模拟器B发送短信时(应用程序打开),B通过短信将位置坐标发送回A。问题是,当我启动模拟器时,onlocationchanged被触发,所以坐标成功返回。如果我在同一个模拟器上重新运行应用程序,则不会触发locationchanged,因此纬度和经度值保持为空。我怎样才能确保每次应用程序启动时都会调用onlocationchanged?感谢
答案 0 :(得分:0)
这是我设置LocationRequest的方式,直到我获得GPS锁定(GPS信号的准确度可接受)。无论用户是否移动,我每秒都会收到坐标。一旦我获得锁定,我将请求减慢到每10秒钟,并将最小位移更改为10米。注意,将smallestDisplacement设置为0允许onLocationChanged方法在没有任何移动的情况下触发。
mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(1000); //1 second
mLocationRequest.setFastestInterval(1000); //1 second
mLocationRequest.setSmallestDisplacement(0); //always accept gps
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);