问:Android - 用于设置更改的BroadcastListener - 有更好的方法吗?

时间:2016-11-03 00:08:53

标签: java android broadcastreceiver android-broadcast android-broadcastreceiver



具体来说,我希望我的BroadcastListener在“位置”设置变为“开启”时触发一些代码。

请问,与我目前的逻辑(下图)相比,任何人都可以提供更简单,更直接的方式吗?

@Override
public void onReceive(Context context, Intent intent) {


    LocationManager locationManager = 
        (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);


    boolean isGpsEnabled;
    boolean isNetworkEnabled;


    isGpsEnabled = 
        locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    isNetworkEnabled = 
        locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);


    if (intent.getAction().matches("android.location.PROVIDERS_CHANGED")) {

        if (isGpsEnabled || isNetworkEnabled) {

            // FIRE CODE HERE FOR WHEN LOCATION SETTING TURNS "ON"
        }

    }
}


然后在清单中我有:

<intent-filter>
    <action android:name="android.intent.action.PROVIDER_CHANGED" />

    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>


..当然有更好的方法,但这就是我到目前为止所提出的。还在学习..

同样,我只需要回答“位置”设置何时变为“开启” - 但我似乎无法找到识别整个位置设置的方法..

如果有人愿意以更好的方式帮助我,我会非常感激!

在此先感谢:)

0 个答案:

没有答案