如何在不消耗GPS的情况下收听GPS和网络提供商状态。 我想知道现状。我不想得到位置信息。
我使用了以下代码,
mLocationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 0, 0, this);
mLocationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER, 0, 0, this);
mLocationManager.requestLocationUpdates(
LocationManager.PASSIVE_PROVIDER, 0, 0, this);
使用上述代码时,GPS图标始终在通知栏中闪烁。这意味着它总是消耗GPS。我不想仅仅为了检查GPS状态而消耗GPS。因为这会耗尽电池电量。 检查GPS ON或OFF与使用GPS不同。
我也探索并找到了单独检查GPS状态的方法 "GpsStatus.Listener".
但我想知道GPS和网络提供商的状态。我不想要位置信息。
请帮我解决这个问题。
答案 0 :(得分:0)
在下面找到我的答案,
注册本地广播接收器,以便在位置提供者状态发生变化时更新UI,
<强> getApplicationContext()。registerReceiver(mGpsNetworkStatusChangeReceiver, 新的IntentFilter(LocationManager.PROVIDERS_CHANGED_ACTION));
以下是我的广播接收器:
public class GpsNetworkStatusReceiver extends BroadcastReceiver {
private static final String TAG = GpsNetworkStatusReceiver.class
.getSimpleName();
private AppUtil mAppUtilInstance = AppUtil.getInstance();
@Override
public void onReceive(Context context, Intent intent) {
mAppUtilInstance.logDebugMessage(TAG,
"GpsNetworkStatusReceiver - onReceive");
mLocationManager = (LocationManager) mContext
.getSystemService(Context.LOCATION_SERVICE);
//check the GPS and NEtwork Provider Status and update the UI
boolean gpsEnabled = mLocationManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);
boolean networkEnabled = mLocationManager
.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
}
}