如何在不消耗GPS的情况下找到GPS和网络提供商状态?

时间:2014-12-09 10:19:54

标签: android networking gps location locationlistener

如何在不消耗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和网络提供商的状态。我不想要位置信息。

请帮我解决这个问题。

1 个答案:

答案 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);

}

}