Android定位SDK

1、Android Q新增的ACCESS_BACKGROUND_LOCATION权限是干什么的?使用时有什么需要注意的地方?

腾Android Q进一步细化定位权限,用户可以选择只有在使用应用时(应用在前台)app才能使用定位权限,或者无论何时都可以定位。在清单文件中申请该权限,同时在代码中动态申请该权限,系统会弹窗提示用户是否选择始终允许。

只要应用运行在Android Q的设备上,这套机制就是有效的。区别在于应用的target,如果target是Q,那么需要手动在manifest中添加ACCESS_BACKGROUND_LOCATION权限,再在应用中动态申请该权限。如果target <= P,那么系统会在应用安装时自动配置ACCESS_BACKGROUND_LOCATION权限,动态请求时也会看到弹窗提示用户是只允许前台定位还是全局定位。

2、Android Q严格限制了读取设备的硬件标识,这对使用SDK有影响吗?

IMEI,IMSI,SN,MAC等常用用户标识符将无法拿到。之前拿这几个值我们需要READ_PHONE_STATE,现在READ_PRIVILEGED_PHONE_STATE这个权限属于系统权限,我们无法拿到。针对这项改动,SDK专门做了适配,不会对使用造成影响。

3、Android Q对无线扫描做了严格限制,这对SDK有什么影响?

网络定位依赖用户上报的wifi和基站信息为用户提供定位服务。建议使用定位服务时提示用户打开wifi开关,同时确保拿到ACCESS_FINE_LOCATION权限。否则在没有gps的情况下将无法为用户提供定位服务。其中WifiManager.setWifiEnabled方法失效,Android官方推荐settings panel提示用户手动开启。

4、什么是腾讯手机地图定位SDK?

腾讯地图定位SDK是一套基于Android 4.1及以上版本设备的应用程序接口,通过该接口,您可以轻松的使用腾讯地图定位服务,构建LBS应用程序。

定位SDK包括GPS定位与网络定位,实现了经纬度坐标偏转与当前位置的POI名称、地址或者行政区划的查询。采用了移动缓存策略,节省流量与电量。

5、UnsatisfiedLinkError引起程序崩溃

DDMS下可以看到类似日志。错误原因是程序运行时无法加载 libtencentloc.so,请确认目标工程中存在lib/armeabi/libtencentloc.so 文件。

03-04 16:12:49.259: E/AndroidRuntime(6804): FATAL EXCEPTION: main…

03-04 16:12:49.259: E/AndroidRuntime(6804): Caused by: java.lang.UnsatisfiedLinkError: Couldn’t load tencent_loc: findLibrary returned null

6、为何定位SDK设置请求级别无效?

如果是7.2.4版本,请您确保TencentLocationManager.getInstance()方法务必优先于LocationRequest构造调用。

iOS定位SDK

1、腾讯定位SDK是否没使用过JSpatch?

腾讯iOS定位SDK没有使用JSPatch,也没有集成Bugly,腾讯位置服务 iOS 提供的所有 SDK 都不支持热更新。

2、iOS定位SDK引入了 IDFA,可能会造成您的应用提交AppStore审核失败,请您认真阅读下文

(1)引入IDFA的目的

引入 IDFA 能够较精准的识别用户,能帮助我们最大程度的追踪您在使用 SDK 时的问题,确保SDK稳定性。

(2)审核时关于 IDFA 选项的选择

1.在 App 内投放广告

服务应用中的广告。如果您的应用中集成了广告的时候,您需要勾选这一项。

2.将此 App 安装归因于先前投放的特定广告

跟踪广告带来的安装。如果您使用了第三方的工具来跟踪广告带来的激活以及一些其他事件,但是应用里并没有展示广告您需要勾选这一项。

3.将此 App 中发生的操作归因于先前投放的特定广告

跟踪广告带来的用户的后续行为。如果您使用了第三方的工具来跟踪广告带来的激活以及一些其他事件。

4.iOS 中的“限制广告跟踪”设置

对您的应用使用 IDFA 的目的做下确认,只要您获取了 IDFA,那么这一项都是需要勾选的

5.被 AppStore 拒绝的解决办法

如果您的应用里只是集成了广告,不追踪广告带来的激活行为,那么选择 1 和 4。

如果您的应用没有广告,而又获取了 IDFA。我们建议选择 2 和 4。

Unity定位SDK

1、适用平台

Android、IOS。

2、在Android机器上, 横屏闪退

在导入资源包TencentLocationSDK.unitypackage后,修改Plugins/Android/AndroidManifest.xml文件,将仅支持竖屏改为同时支持竖屏与横屏,即:android:screenOrientation="portrait”改为android:configChanges=“orientation|keyboardHidden|screenSize”。

3、在Awake( )中开启定位无效

TencentLocationService.cs挂载到任意一个GameObject上,GameObject运行时,定位服务会自动进行初始化,当定位状态处于Ready状态,打开定位才有效。判断定位是否处于ready状态的方法如下:tencentLocationService.status == TencentLocationServiceStatus.Ready。

其他

1、使用需要注册吗?

不需要注册,您只要接受并认可 《腾讯地图API使用条款》,并按照参考手册进行开发,即可直接调用。

2、定位SDK是否免费? 调用有次数限制吗?

目前腾讯定位SDK完全免费,且没有单日调用上限的限制。

3、腾讯位置服务定位SDK在使用过程中,需要请求读写存储的权限才能用,这个权限有什么用途,是否能去掉?

腾讯位置服务的定位SDK有缓存的需求,需要读取存储权限,因此该功能不能取消。

4、腾讯位置服务的SDK是否支持IPv6网络?

腾讯位置服务的SDK目前是通过域名访问的,支持IPv6网络,请放心使用。

5、腾讯位置服务的定位SDK是否有接口限制?

目前腾讯位置服务的SDK没有任何限制,且支持多线程并发访问。

6、请问一下腾讯地图给androidapp的sdk提供的经纬度坐标系是火星坐标系吗??

sdk使用的是火星坐标。

7、定位SDK在室内GPS打开的情况下也无法定位?

  • 1)、GPS只有室外场景下才生效。
  • 2)、网络定位没有方向属性。
  • 3)、GPS必须保证位置服务类型为高精定位(设置里面看)
  • 4)、有时候在室外场景下,由于可观测星数不足导致GPS无法定位,我们还是会按网络定位走。
  • 5)、GPS芯片在有的手机上会有问题,重启后有概率可以恢复。如GPS芯片有问题导致无法使用GPS定位不在我们能力范围内。

8、定位失败问题?

定位请求失败返回error code值,Error code值返回有两类,一类是接口直接返回,还有Listener回调返回。

  • (1)接口直接返回:

    1.设备缺少使用腾讯定位服务需要的基本条件,通常是权限问题。确保是在真机上运行。

    2. 配置的 key 不正确:检查manifest文件中key的配置是否正确。

    3. 加载so失败:检查打出的APK是否将so打进去了。是否按官网要求屏蔽了定位SDK相关API的混淆。

    4. ClassLoader获取或加载失败。很少见,出了这个异常一般是代码有错误了。

    5. 插件加载或插件调用方法抛出异常。检查so文件是否打进了APK文件,删除本地App重新安装。

  • (2)Listener回调返回

    1. 因为网络原因导致定位请求失败。确保手机当前网络连接可用,WiFi和移动网络至少有一个开启,且能正常联网。

    2. 定位请求上报数据缺失导致定位请求失败。检查权限配置是否正确。相关权限是否给与。有时候也会因为用户位置周围确实数据缺失导致定位失败,可以让用户移动一下再测试。

    3. 404- 后台定位失败。通常是上报的用于定位的指纹数据没有在后台找到对应的位置导致的,有可能是因为端上权限问题,导致采集的WiFi和基站数据不足以满足定位条件。如果确保定位权限可以让用户提供设备IMEI号和大概的定位时间(至少精确到天)。

9、定位精度问题?

定位SDK有三种,按精度排序:GPS>WiFi>Cell。其中GPS只有室外可用,WiFi和cell都属于网络定位,室内外都可以用。在室外返回网络定位结果一般是GPS不可用或GPS观测星数太少导致的。如果有用户反映定位精度低,解决路径如下:

  • 1. 确定系统位置服务开启,模式为“高精”。只有“高精”模式才允许使用GPS服务。
  • 2. 确认手机GPS硬件没问题,有的手机由于自身原因,GPS模块会初始化失败,这时候重启手机一般可解决。
  • 3. 将WiFi打开,不一定非要连上,但一定要保证有网。
  • 4. 如果还是反馈定位精度不够,位置偏差大,请用户提供手机IMEI和大概的定位时间给我。

10、WGS84坐标下返回结果中看不到地名

按照国家测绘局对地理信息保密要求,我们无法提供这样的功能。如果您需要地名信息,请使用GCJ02坐标。

11、无法定位成功

  • 1)、首先请检查您的程序编写正确。可使用我们提供的 Demo 进行对比验证。
  • 2)、请确保是在真机上运行程序。
  • 3)、请确保网络连接可用,即3G或WiFi正常(不要求必须开启GPS)。可使用不同的网络环境进行对比验证。
  • 4)、请确定您的 Key 是否正确。
  • 5)、受限于基站和WiFi热点分布范围及更新速度,无法 100% 保证网络定位成功。建议将设备移动到 500~800 米外重新测试。
  • 6)、如果仍然无法定位成功,请到反馈建议平台中查看类似问题或直接提问,会有专人为您解答。