具体来说,我希望我的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>
..当然有更好的方法,但这就是我到目前为止所提出的。还在学习..
同样,我只需要回答“位置”设置何时变为“开启” - 但我似乎无法找到识别整个位置设置的方法..
如果有人愿意以更好的方式帮助我,我会非常感激!
在此先感谢:)