android - checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) 返回 true,即使我的 GPS 已关闭
问题描述
如果未授予权限,我正在尝试提示用户激活 GPS。我无法进入请求部分,因为即使我的 GPS 关闭,检查也始终返回 true。
这是我的代码:
if (ContextCompat.checkSelfPermission(context, ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(getActivity(), new String[]{ACCESS_FINE_LOCATION}, 1);
}
由于我的 GPS 关闭,我希望条件返回 true,但它返回 false。
你能向我解释一下为什么我会因此而变得虚假吗?
预先感谢您的帮助。
解决方案
ContextCompat.checkSelfPermission
true
如果用户已授予您的应用程序的权限,则返回ACCESS_FINE_LOCATION
. 它与设备上的 GPS 状态无关。检查此链接以获取有关其工作原理的更多信息。
但是,如果您想访问或检测 GPS 的当前状态,如果它在应用程序中处于打开或关闭状态,您可以使用以下代码来执行此操作:
if ( (context.getSystemService(Context.LOCATION_SERVICE) as LocationManager).isProviderEnabled(LocationManager.GPS_PROVIDER) )
{
//gps is on in the device
}
推荐阅读
- spring-boot - Rabbitmq - 优先队列消息处理
- bash - 在 Bash 脚本中从参数创建一个新目录
- flutter - Flutter:发布后应用程序无法登录,并且 floatingActionButton 不起作用
- javascript - 是否有防止在单行 if 语句中赋值的 eslint 规则?
- godot - 如何在godot中管理两个网格容器以便您可以看到它们的内容
- php - 如何修复与控制器相关的此错误?
- time-series - 使用带有查询命令的 CSV 工具时出现问题
- td-engine - tdengine 是否支持使用线路协议将数据从 influxdb 传输到 tdengine
- python - Django,多处理和 python 日志记录
- java - 使用 Java 将 Solr 核心从一个旧 Solr 导入另一个 solr(solr 版本 4 到 solr 版本)