dro*_*dev 6 gps android location
在我的应用程序中,我每 5 分钟向服务器发送一次位置更新。为此,我正在使用 gms LocationListener。这工作正常。我在服务中运行它。如果用户关闭 GPS,它将无法工作。因为即使在打开 GPS 后它也在运行它,它将等待完成 5 分钟的更新时间。所以我想要的是当用户打开 GPS 时,它应该触发 onLocationUpdate 侦听器。
为此,我做了如下操作,我已经GpsStatus.Listener在我的服务中进行了初始化,并实现了它的onStatusChange()功能,但是在我将 GPS 状态从打开更改为关闭/关闭后,该功能没有触发。
代码
public class LocationUpdateService extends Service implements GpsStatus.Listener, com.google.android.gms.location.LocationListener{
onCreate(Bundle b){
super.onCreate();
registerGpsStatusListener();
}
private void registerGpsStatusListener() {
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.addGpsStatusListener(this);
}
@Override
public void onGpsStatusChanged(int event) {
switch (event) {
case GpsStatus.GPS_EVENT_STARTED:
Log.e(TAG, "onGpsStatusChanged started");
break;
case GpsStatus.GPS_EVENT_STOPPED:
Log.e(TAG, "onGpsStatusChanged stopped");
break;
case GpsStatus.GPS_EVENT_FIRST_FIX:
Log.e(TAG, "onGpsStatusChanged first fix");
break;
case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
Log.e(TAG, "onGpsStatusChanged status");
break;
}
}
@Override
public void onLocationChanged(Location location) {
//opertations
}
}
Run Code Online (Sandbox Code Playgroud)
我的查询是:
1- 为什么onGpsStatusChanged()在更改 GPS 状态后该方法没有调用。
2-如何在onLocationChanged()方法中获取位置,以便我可以调用onLocationUpdate()方法。
注意:请不要推荐使用,BroadcastReceiver因为它需要对我当前的代码进行大量的代码修改。
| 归档时间: |
|
| 查看次数: |
16743 次 |
| 最近记录: |