我使用Android SDK位置管理器来获取用户位置。
我正在使用Pending Intent请求位置信息。我已经使用了挂起的意图,因为我需要发送位置信息,即使应用程序没有运行。
Intent mLocationIntent = new Intent(mContext,
LocationIntentService.class);
mLocationUpdatePendingIntent = PendingIntent.getService(mContext, 1,
mLocationIntent, 0);
mLocationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 0, 0,
mLocationUpdatePendingIntent);
一旦注册了上面的代码,我就会在LocationIntentService类的onHandleIntent中获取位置信息。
但我没有onProviderEnabled或onProviderDisabled方法来监听gps和网络提供商状态。而且我也不想使用融合的位置api。
如何通过使用Pending Intent请求位置更新来实现这两个目的。或者以其他任何方式注册位置信息以及位置提供者状态。
答案 0 :(得分:-1)
为什么不使用locationlistener而不是意图?
类似的东西:
LocationListener mLocationListener = new LocationListener() {
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
}
};
然后进行更新使用:
LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (manager.isProviderEnabled(LocationManager.GPS_PROVIDER))
manager.requestSingleUpdate(LocationManager.GPS_PROVIDER, mLocationListener, null);