在运行时检查位置设置更改

时间:2018-01-27 11:31:30

标签: java android google-maps geolocation

我使用基本位置更新行为来获取用户位置,如this documentation中所述。

它运作得很好,但我仍然坚持看似简单的事情:

我如何知道用户在应用运行时是否停用了自己的位置?

我可以在开始活动时使用Settings Client检查位置是否已启用,但是如何在运行时执行此操作?

1 个答案:

答案 0 :(得分:1)

有一个广播:https://developer.android.com/reference/android/location/LocationManager.html#MODE_CHANGED_ACTION

代码类似于:

private final IntentFilter filter =
          new IntentFilter(LocationManager.MODE_CHANGED_ACTION);

private final BroadcastReceiver receiver = new BroadcastReceiver() {
   @Override public void onReceive(Context context, Intent intent) {
       if(LocationManager.MODE_CHANGED_ACTION.equals(intent.getAction()) {
            // check here the new location status
       }
   }
};

// then to register
context.registerReceiver(receiver, filter);
/// and unregister
context.unregisterReceiver(receiver);