Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当android设备处于飞行模式时,打开位置提示失败_Java_Android_Location - Fatal编程技术网

Java 当android设备处于飞行模式时,打开位置提示失败

Java 当android设备处于飞行模式时,打开位置提示失败,java,android,location,Java,Android,Location,上下文 我有这个应用程序,它要求用户在进行任何活动之前打开位置,因为我们会在他们移动时记录位置,但是,我的一些用户选择在移动时保持飞行模式。我的所有用户都使用android版本4.4三星Galaxy J1,该版本没有根目录。 我们的用户位于偏远地区,没有wifi信号和微弱的网络信号,因此我们只使用gps获取位置。 下图显示应用程序中飞行模式关闭且位置关闭时的提示 问题: 不幸的是,在飞行模式下,不会提示用户打开其位置。使用的代码如下所示 但是,使用上述方法,我无法执行下面的代码,该代码通过单击

上下文 我有这个应用程序,它要求用户在进行任何活动之前打开位置,因为我们会在他们移动时记录位置,但是,我的一些用户选择在移动时保持飞行模式。我的所有用户都使用android版本4.4三星Galaxy J1,该版本没有根目录。 我们的用户位于偏远地区,没有wifi信号和微弱的网络信号,因此我们只使用gps获取位置。 下图显示应用程序中飞行模式关闭且位置关闭时的提示

问题:

不幸的是,在飞行模式下,不会提示用户打开其位置。使用的代码如下所示

但是,使用上述方法,我无法执行下面的代码,该代码通过单击对话框上的“确定”来提示用户打开位置:

    // Location settings are not satisfied, but this can be fixed
// by showing the user a dialog.
try {
  // Show the dialog by calling startResolutionForResult(),
  // and check the result in onActivityResult().
  status.startResolutionForResult(MainActivity.this,REQUEST_CHECK_SETTINGS);
} catch (IntentSender.SendIntentException e) {
  // Ignore the error.
}
上面的代码提示用户单击“确定”以打开位置,因此用户不必离开应用程序并转到“设置”以打开位置。
在查看其他需要定位的应用程序时,我还注意到,由于谷歌地图使用的是相同的定位检查,当处于飞行模式且位置处于关闭状态时。谷歌地图也不会提醒用户关闭位置,只会告诉用户检查他们的互联网连接。任何关于始终检查位置设置的最佳方法的想法都将不胜感激,谢谢,我使用这两种检查来处理这两种情况,即在飞行模式关闭的情况下提示用户打开位置,我们可以访问设置,或者只要求用户转到设置并打开位置。 使用的代码如下所示。通过这种方法,我们可以始终成功地检查位置设置并采取必要的措施

        //go through here if gps is off and in flight mode
    if (!NativeLib.gpsStatus(MainActivity.this) && NativeLib.isAirplaneModeOn(MainActivity.this))
    {
        NativeLib.showSettingsAlert(MainActivity.this);
    }
    else
    {
      getLocationSettings();
    }

到目前为止,我正在使用这两种检查来处理这两种情况,即在飞行模式关闭的情况下提示用户打开位置,我们可以访问设置,或者只要求用户转到设置并打开位置。 使用的代码如下所示。通过这种方法,我们可以始终成功地检查位置设置并采取必要的措施

        //go through here if gps is off and in flight mode
    if (!NativeLib.gpsStatus(MainActivity.this) && NativeLib.isAirplaneModeOn(MainActivity.this))
    {
        NativeLib.showSettingsAlert(MainActivity.this);
    }
    else
    {
      getLocationSettings();
    }

为什么不检查用户是否打开了飞行模式并发出警报通知他关闭飞行模式?之后,检查位置是否打开。@Adrian Alexandrucman,飞行模式有助于节省电池,因为我们的用户活动整天都在脱机模式下进行。他们只在晚上打开移动数据。为什么不检查用户是否打开了飞行模式,并发出警报通知他关闭?之后,检查位置是否打开。@Adrian Alexandrucman,飞行模式有助于节省电池,因为我们的用户活动整天都在离线模式下进行。他们只在晚上打开移动数据。
        //go through here if gps is off and in flight mode
    if (!NativeLib.gpsStatus(MainActivity.this) && NativeLib.isAirplaneModeOn(MainActivity.this))
    {
        NativeLib.showSettingsAlert(MainActivity.this);
    }
    else
    {
      getLocationSettings();
    }