问题:我们是一个海外app,市场部去马来西亚打开那边的市场,发现了一个问题,就是我们的app定位有问题,还是成都的定位,主要原因是在马来西亚使用这个app,请求中带的经纬度参数是成都的,导致服务器返回了成都的定位。

一、Android定位方式

Android常用的三种定位方式有:基于GPS定位、基于基站定位、基于wifi定位

1)基于GPS定位

 GPS定位需要GPS模块(硬件)的支持,没有GPS模块是无法进行GPS定位的。

 GPS定位最大的优点就是其定位精确度高;缺点就是耗电高、定位慢、室内和地下室基本定位不到。

2)基于基站定位

 根据采集到手机所处基站信息和手机相关信息(MNC、MCC、LAC)进行定位,基站定位最大的优点就是:定位速度快,缺点就是:定位精度稍微较差,无网络信号不能使用。

3)基于wifi定位:

 和基站定位类似,根据当前设备获取的wifi信息来进行定位。

可以从Androidmanifest.xml查看程序优先使用的定位方式:

android.permission.ACCESS_FINE_LOCATION        → GPS定位

android.permission.ACCESS_COARSE_LOCATION   → 网络定位

二、Android应用定位原理

LocationManager是用于管理Android的用户定位服务,使用它来监听获取当前的位置信息并定义要返回的信息,如经纬度、方位等

注意点:

 1、如果程序拥有打开GPS的权限,用户设置关闭GPS后但又获取位置的需求则会自动打开GPS来进行定位,定位后会自动关闭GPS;

 2、定位时一定要设置超时时间,要不然遇到定位不到的情况则会一直卡在定位上还无法退出使用其他功能;

 3、如果超时可以上一次定位的位置(LocationManager有方法可以得到上次定位的位置),如果上次定位位置为空则提示用户定位失败。

三、测定位时该从哪些角度考虑

 1、检查三种定位方式定位是否能成功,定位精度准确且无报错;

 2、三种定位正交组合,检查定位功能和定位精度;

 3、程序有打开GPS权限时,关闭网络和GPS,检查能否定位和定位精度;

 4、定位失败的两种处理情况(失败提示和是否返回上一次位置);

 5、定位过程中与来电、短彩信、蓝牙的冲突;

 6、定位过程中与功能键交互;

 7、不同网络环境(移动、联通、电信中3G/2G)下的定位速度和精度;

 8、不同环境(室内、室外、电梯)的定位和精度;

 9、本地测试外地定位(DDMS模拟)

特别是第9点,我这次就是坑了,没测试到

Android定位测试(深坑)的更多相关文章

  1. Android studio的深坑 导jar包重复的异常处理

    导包重复这个问题折磨了整整一天!! 第一个方法在gradle文件下看看有没有重复的包  如果有那么一切都是浮云分分钟搞定 ,最可恶的是在gradle里面没有. 在gradle里面找不到的话就要考虑一下 ...

  2. android MultiDex multidex原理原理下遇见的N个深坑(二)

    android MultiDex 原理下遇见的N个深坑(二) 这是在一个论坛看到的问题,其实你不知道MultiDex到底有多坑. 不了解的可以先看上篇文章:android MultiDex multi ...

  3. Android GPS定位测试(附效果图)

    今天因为工作需要,把以前编写的一个GPS测试程序拿出来重新修改了一下.这个程序说起来有些历史了,是我11年编写的,那时候学了Android开发没多久,算是一个实验性的作品.现在工作需要,重新拿出来修整 ...

  4. Android GPS定位测试(附效果图)

    今天因为工作需要,把以前编写的一个GPS测试程序拿出来重新修改了一下.这个程序说起来有些历史了,是我11年编写的,那时候学了Android开发没多久,算是一个实验性的作品.现在工作需要,重新拿出来修整 ...

  5. Android项目开发填坑记-so文件引发的攻坚战

    故事的最初 我负责的项目A要求有播放在线视频的功能,当时从别人的聊天记录的一瞥中发现百度有相关的SDK,当时找到的是Baidu-T5Player-SDK-Android-1.4s,项目中Demo的so ...

  6. Android测试(一):在Android中测试App

    原文:https://developer.android.com/training/testing/index.html 测试你的App是开发过程中的重要组成部分.通过对应用程序持续的运行测试,你可以 ...

  7. Go语言第一深坑:interface 与 nil 的比较

    interface简介 Go 语言以简单易上手而著称,它的语法非常简单,熟悉 C++,Java 的开发者只需要很短的时间就可以掌握 Go 语言的基本用法. interface 是 Go 语言里所提供的 ...

  8. 六 APPIUM Android 定位方式

    文本转自:http://www.cnblogs.com/sundalian/p/5629500.html APPIUM Android 定位方式   1.定位元素应用元素 1.1通过id定位元素 An ...

  9. Appium 在 Android UI 测试中的应用

    原文地址:https://blog.coding.net/blog/Appium-Android-UI Android 测试工具与 Appium 简介 Appium 是一个 C/S 架构的,支持 An ...

随机推荐

  1. 20155308 加分项——C语言实现Linux的pwd命令

    20155308 加分项--C语言实现Linux的pwd命令 实现要求 学习pwd命令 什么是pwd pwd' 代表的是'Print Working Directory'(打印当前目录).如它的名字那 ...

  2. c++ 自定义数据结构运用

    教学内容: 定义结构 定义结构变量 访问结构成员 定义结构数组 实例运用 例:记录学生到校时间(精确到秒) struct mytime { int hour;//时 int min;//分 ...

  3. centos7下python3与python2共存并且开启py3虚拟环境

    因为下载视频需要用到python3环境,今天在我的win上安装下载工具死活安装不上去,在大盘鸡上一下就安装成功了...可能在win上不兼容吧...无奈只能在大盘鸡上进行折腾了,顺便几个笔记 由于大盘鸡 ...

  4. JY播放器【蜻蜓FM电脑端,附带下载功能】

    今天给大家带来一款神器----JY播放器.可以不用打开网页就在电脑端听蜻蜓FM的节目,而且可以直接下载,对于我这种强迫症患者来说真的是神器.我是真的不喜欢电脑任务栏上面密密麻麻. 目前已经支持平台(蜻 ...

  5. MongoDB 极简实践入门

    原作者StevenSLXie; 原链接(https://github.com/StevenSLXie/Tutorials-for-Web-Developers/blob/master/MongoDB% ...

  6. 袋鼠云研发手记 | 袋鼠云EasyManager的TypeScript重构纪要

    作为一家创新驱动的科技公司,袋鼠云每年研发投入达数千万,公司80%员工都是技术人员,袋鼠云产品家族包括企业级一站式数据中台PaaS数栈.交互式数据可视化大屏开发平台Easy[V]等产品也在迅速迭代.在 ...

  7. K-近邻算法入门

    K-近邻算法的直观理解就是:给定一个训练集合,对于新的实例,在训练集合中找到k个与该实例最近的邻居,然后根据“少数服从多数”原则判断该实例归属于哪一类,又称“随大流” K-近邻算法的三大要素:K值得选 ...

  8. leetcode个人题解——#39 Combination Sum

    思路:先对数据进行排序(看评论给的测试数据好像都是有序数组了,但题目里没有给出这个条件),然后回溯加剪枝即可. class Solution { public: ; vector<vector& ...

  9. KETTLE并行

    1.转换的并行 转换的并行是改变复制的数量 上面的转换相当于下面的: 实际是把一个任务拆成三部分执行,相当于在一个数据库连接中做了三次查询,数据库连接的开销没有增加,但是有三个进程一起执行. 2.jo ...

  10. css 元素水平垂直方向居中

    html部分 <div class="parent"> <div class="child"> - -居中- - </div> ...