android 6.0 关于定位的那些坑
来源:互联网 发布:js中校验身份证合法性 编辑:程序博客网 时间:2024/05/21 19:34
今天我们的客户反应一台android设备获取不到定位,我立刻乘车到客户公司调查,原因是android系统的定位服务被关闭了。
针对此事件,我查阅了谷歌文档。定位服务,是android 6.0及以上系统才有功能。
定位服务简介:通常将各种不同的定位技术称为位置服务或定位服务。这种服务是通过电信运营商的无线电通信网络(如GSM网、CSMA网等)或外部定位方式(如GPS)来实现的。Android提供了对移动数据(cell tower,也叫蜂窝发射塔)、无线网络(Wi-fi)、全球定位系统(GPS)等多种定位技术的访问。
例如,你编写的应用程序希望使用GPS定位,但是手机的位置服务可能处于关闭状态,这种情况下,实际上是无法获取到位置的,连一个粗略的位置都没有。该提供程序返回null,如果是百度定位sdk,返回就是167,无定位权限访问。就是我遇到的这种问题。
位置服务,需要授予两个权限才能访问,官方描述如下:
ACCESS_COARSE_LOCATION
String ACCESS_COARSE_LOCATION
Allows an app to access approximate location. Alternatively, you might want ACCESS_FINE_LOCATION
.
Protection level: dangerous
Constant Value: "android.permission.ACCESS_COARSE_LOCATION"
ACCESS_FINE_LOCATION
String ACCESS_FINE_LOCATION
Allows an app to access precise location. Alternatively, you might want ACCESS_COARSE_LOCATION
.
Protection level: dangerous
Constant Value: "android.permission.ACCESS_FINE_LOCATION"
ACCESS_LOCATION_EXTRA_COMMANDS
String ACCESS_LOCATION_EXTRA_COMMANDS
Allows an application to access extra location provider commands.
Protection level: normal
Constant Value: "android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"
看懂英文的就知道为什么是3个权限了哈。
其次,我们的应用如何检查定位服务是否打开?谷歌也说了,定位服务是一种特殊类型的由Android系统管理的服务。系统服务总是与设备的硬件进行交互,并总是处于运行状态。在应用程序中,可利用ILocationListener与LocationManager类来访问定位服务。具体来说,要利用Android Location Service获取用户的位置,需要完成下面的步骤:
- 获取对LocationManager类的引用。
- 使用LocationManager请求提供程序更新位置
- 当位置发生改变时,在实现的ILocationListener接口中处理位置信息。
- 当应用程序转入后台时停止位置更新。
所以,我们需要使用LocationManager来判断是否开启位置服务。
如果没有开始位置服务,我们可以跳转到开启位置服务的页面,代码如下:
Intent locationIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);startActivity(locationIntent);
- android 6.0 关于定位的那些坑
- CSS中关于定位的那些问题
- Android中关于Fragment的那些事、那些坑
- android关于SlidingDrawer的那些坑
- 关于 Android studio的Gradle 那些坑
- 关于android webview 的那些坑
- 关于android的那些事儿@@
- 关于Android 定位的介绍
- 关于android上的定位
- 关于android上的定位
- 关于android上的定位
- 关于android上的定位
- 关于Android上的定位
- app定位、地图、坐标系的那些坑
- App定位和地图的那些坑
- 那些年,关于android集成微信的坑
- 关于Android微信支付的那些坑
- 关于Android的透明度的那些事
- 【bzoj3437】小P的牧场
- 【剑指offer】面试题 15:二进制中 1 的个数
- 7月6日云栖精选夜读:浅谈应用性能测试 PTS
- PayPal支付功能实现
- Linux 下开启FTP服务
- android 6.0 关于定位的那些坑
- 欢迎使用CSDN-markdown编辑器
- 求最大公约数和最小公倍数数(辗转相除法)
- OpenStack mitaka,lbaasV2安装
- LintCode-最大正方形&最大矩形
- 如何定位问题
- oracle中exists和in的区别和效率比较
- Git和SVN的区别
- .NET线程同步之Interlocked构造