如何知道位置是否被禁用或任何地方的权限被拒绝

时间:2018-12-05 08:19:00

标签: java android gps broadcastreceiver android-permissions

如果问题尚不清楚,我的意思是我的应用完全取决于用户的位置,一旦GPS禁用或应用不再具有权限,我需要知道。

现在有4种可能的发生方式,

  1. 从系统托盘关闭GPS
  2. 从系统设置中关闭GPS
  3. 在应用信息屏幕上拒绝权限
  4. 拒绝系统设置的权限

我觉得1和2是相同的动作,而3和4也相同。

  

请参见下面的图片以了解选项


当前,我只能使用BroadcastReceiver来知道选项2,但是它有一个局限性,就是我不知道用户执行了什么操作?他打开还是关闭了它?它只是以任何一种方式打印日志。

 private BroadcastReceiver mGpsSwitchStateReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {

            if (intent.getAction().matches("android.location.PROVIDERS_CHANGED")) {
                // this triggers either the user turn on or off the GPS
                  Log.i("TAG", "onReceive: ");
            }
        }
    };

我的问题不是this question的重复,因为我正在寻求一种方法来确定GPS是否已被广播接收器禁用!?还有另一个问题集中在媒体而不是位置上,这是完全不同的事情!


enter image description here

0 个答案:

没有答案