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

1、基于GPS定位:

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

 GPS定位最大的优点就是其定位精确度高(一般误差在10m内),无网络也能用;缺点就是耗电高、定位慢、室内和地下室基本定位不到。

2、基于基站定位:

 根据采集到手机所处基站信息和手机相关信息(MNC、MCC、LAC)进行定位,然后把它们传给百度API或高德API来获取位置信息(自己开发成本太大,百度和高德已提供LBS接口平台)。

 基站定位最大的优点就是:定位速度快,缺点就是:定位精度稍微较差(200m左右),无网络信号不能使用。

3、基于wifi定位:

 和基站定位类似,根据当前设备获取的Wi-Fi的信息来进行定位,Wi-Fi定位精度一般不受使用环境影响,主要和Wi-Fi半径,密度有关。Wi-Fi定位精度目前在20m左右

那如何确定我们的程序优先使用哪种方式来进行定位的呢?

 一般情况下是通过查看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模拟)

Android定位方式和测试方法的更多相关文章

  1. 六 APPIUM Android 定位方式

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

  2. android定位方式

    做移动互联网就不太可能不碰手机端的开发.上周为了项目需要,俺也挽袖子抡胳膊开始写起了android程序,还好有java基础,倒也上手快,写了几个小程序,主要都是关于定位方面的. 网上也搜得到一些相关的 ...

  3. 七 APPIUM Android 定位方式

    1.定位元素应用元素   1.1通过id定位元素 Android里面定位的id一般为resrouce-id: 代码可以这样写: WebElement element = driver.findElem ...

  4. APPIUM Android 定位方式

    原文地址https://www.cnblogs.com/sundalian/p/5629500.html 1.定位元素应用元素 1.1通过id定位元素 Android里面定位的id一般为resrouc ...

  5. Android定位测试(深坑)

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

  6. android 定位的四种方式

    [原文]  开发中对于地图及地理位置的定位是我们经常要用地,地图功能的使用使得我们应用功能更加完善,下面总结了一下网络中现有对于介绍android定位的4种方式,希望对大家有帮助: android 定 ...

  7. android 三种定位方式

    http://www.cnblogs.com/oudi/archive/2012/03/22/2411509.html 最近在看android关于定位的方式,查了很多资料,也做了相关实验,在手机上做了 ...

  8. android 定位的几种方式介绍

    [地理位置] android 定位的几种方式介绍 开发中对于地图及地理位置的定位是我们经常要用地,地图功能的使用使得我们应用功能更加完善,下面 www.androidkaifa.com 总结了一下网络 ...

  9. 技术分享 | app自动化测试(Android)--元素定位方式与隐式等待

    原文链接 元素定位是 UI 自动化测试中最关键的一步,假如没有定位到元素,也就无法完成对页面的操作.那么在页面中如何定位到想要的元素,本小节讨论 Appium 元素定位方式. Appium的元素定位方 ...

随机推荐

  1. 一个简单的代码计算行数demo编写

    最近手头的项目基本上已经完结,历经了5个月的开发和迭代,各种的需求调整,想对自己的代码量进行一个客观的计算,于是抽了点时间写下了这个小demo,朋友们有需要的可以看看,很简单. 基本的思想就是:根目录 ...

  2. Java_内存管理String and Array

    题目1.指出下列程序运行的结果 ()public class Example { String str = new String("good"); char[] ch = { 'a ...

  3. YAML-初识

    YAML简介 YAML-what? YAML Ain't Markup Language 和GNU一样,YAML是一个递归着说"不"的名字.不同的是,GNU对UNIX说不,YAML ...

  4. mongodb 3.2 用户权限管理配置

    使用mongodb 有段时间了,由于是在内网使用,便没有设置权限,一直是裸奔. 最近有时间,研究了下mongodb 3.2 的用户权限配置,网上有许多用户权限配置的文章,不过大多是之前版本,有些出入, ...

  5. Maven 在sts不会自动下载包的问题

    1.查看maven配置setting.xml是否有设置远程仓库 2.sts是否正确配置指定了setting.xml 3.是否开启线上下载,如下图

  6. FragmentPagerAdapter实现刷新

    在fragmentpageadapter的instantiateItem方法里,他会先去FragmentManager里面去查找有没有相关的fragment如果有就直接使用如果没有才会触发fragme ...

  7. IT人学习方法论(三):高效学习

    一些有关“怎么学”的建议 首先需要明确方向,否则即使学习方法再高效,也不免南辕北辙,背离自己的目标.关于学习方向的讨论,请参见之前的一篇文章 .下面我来重点说一说有关“怎么学”的建议. IT技术,不是 ...

  8. Lattice Diamond 和 ispLEVER 的不同之处

    Lattice Diamond 和 ispLEVER.有一些不同,尤其是如何管理工程的不同,包括以下几点: 1.ispLEVER 有多种工程类型,不同的程序文件类型需要不同的类型的工程:但是Diamo ...

  9. 微信公众平台中的openid是什么?

    在微信公众平台开发中,会遇到一个叫openid的东东,让我们这些不懂开发的摸不着头脑,开始我也是一头雾水,经过多方面查资料,终于明白是怎么回事了! openid是公众号的普通用户的一个唯一的标识,只针 ...

  10. 手机的ROM,RAM是各自存放什么?所谓“运行内存”和“机身内存”究竟有什么区别?

    手机的内存分为运行内存(RAM)和非运行内存(也叫机身内存.储存空间.ROM) 1.手机的内存,分为存储内存和运行内存,相当于电脑的硬盘和内存条.2.存储内存分为机身内存和存储卡.3.rom是存储内存 ...