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
Android 请求位置许可_Android_Cordova_Ionic Framework_Cordova Plugins_Android Permissions - Fatal编程技术网

Android 请求位置许可

Android 请求位置许可,android,cordova,ionic-framework,cordova-plugins,android-permissions,Android,Cordova,Ionic Framework,Cordova Plugins,Android Permissions,我想完成的事情: 如果默认情况下用户的位置服务阻止我获取他/她的手机位置,我希望在16-25(Android 4.1.2-7.1.1)之间的每个API上请求位置权限 因为在iOS上我没有遇到过这个问题,所以我想把重点放在android上 我已经尝试过的: 上面提到的插件总是以haspowmission:true返回,即使设备上的位置访问被拒绝,所以它对我不起作用 我尚未尝试的内容: 诊断插件描述说,据我所知,我可以在API 23及以上版本或API 22及以下版本中进行选择。(是最

我想完成的事情:
如果默认情况下用户的位置服务阻止我获取他/她的手机位置,我希望在16-25(Android 4.1.2-7.1.1)之间的每个API上请求位置权限
因为在iOS上我没有遇到过这个问题,所以我想把重点放在android上

我已经尝试过的:


上面提到的插件总是以
haspowmission:true
返回,即使设备上的位置访问被拒绝,所以它对我不起作用

我尚未尝试的内容:

诊断插件描述说,据我所知,我可以在API 23及以上版本或API 22及以下版本中进行选择。(
是最低的目标版本。)但我不知道它是否仍然适用于较低的API版本。

我的设置:

  • Cordova CLI:6.2.0
  • Gulp CLI和本地:3.9.1
  • 离子骨架:1.3.1
  • 爱奥尼亚CLI:1.7.16
  • 节点:4.2.2
  • 安卓设备:5.0.1
  • 预期建造目标:16
  • 当前建设目标:22
诊断插件描述说,据我所知,我可以在API 23及以上版本或API 22及以下版本中进行选择。(是最低的目标版本。)但我不知道它是否仍然适用于较低的API版本

cordova诊断插件API级别要求基于用于构建的SDK版本,而不是目标设备上运行的API版本。 因此,使用API 23(Android 6.0)SDK构建的应用程序仍然可以在运行旧版本Android的设备上运行

您需要将构建目标设置为API 23(或更高版本),以使用插件的主版本进行构建(
cordova.plugins.diagnostic
,而不是
cordova.plugins.diagnostic.API-22
),因为它包含需要API 23+构建环境的运行时权限代码

如果用户的位置服务在默认情况下阻止我获取他/她的手机位置,我希望在16-25(Android 4.1.2-7.1.1)之间的每个API上请求位置许可

这有两个不同的方面:

在16-25(Android 4.1.2-7.1.1)之间的每个API上请求位置许可

API 23(Android 6.0)中引入了Android运行时权限

您可以使用检查应用程序是否具有位置授权。 在运行Android 5(API 22)或更低版本的设备上调用它将始终返回TRUE,因为在安装时已经授予了权限

您可以请求运行时权限以使用位置。 在运行Android 5(API 22)或更低版本的设备上调用它将没有任何效果,因为在安装时已经授予了权限

位置服务阻止我获取他/她的手机位置

您可以使用检查用户是否已关闭位置

如果位置已关闭,则可以使用打开“设备位置设置”页面以允许用户启用位置服务,也可以使用请求所需的位置精度,而无需用户在“位置设置”页面上手动执行此操作


免责声明:我是和的作者。

现在一切正常!非常感谢@DaveAlden对您的大力支持和对各种可能性的总结!嗨,达维登!也许你会帮助我!我有一个使用地理定位的应用程序。在新版本发布之前,一切正常。新版本包含谷歌说我们应该做的清单更改(使用hardware.location.gps功能)。现在我的应用程序无法获取当前位置:/I我的清单文件中有这些文件:ACCESS\u LOCATION\u EXTRA\u命令ACCESS\u Rough\u LOCATION ACCESS\u FINE\u LOCATION android.hardware.LOCATION.gps android.hardware.LOCATION.Network当我使用您的诊断插件时,一切似乎都正常。这些方法返回true或关于高精度的信息:getLocationAuthorizationStatus isNetworkLocationEnabled isNetworkLocationAvailable isGpsLocationEnabled isGpsLocationAvailable getLocationMode requestLocationAuthorization isLocationEnabled IsLocationAuthorizationIsLocationAvailable仍然可用,当我尝试获取位置时,结果是“位置被拒绝”。这个问题出现在Android 4.3、4.4、5.0和5.1上。有时也出现在6.x上。我的应用程序能够在某些设备上获取位置,但在其他设备上它失败。