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. ASP.NET Ajax 简单实例

    本实例讲解Ajax 调用WCF服务. 1.建立一个网站,并在其中添加一个WCF服务(这里需要选择Ajax-Enabled WCF Service). 2.IDE会自动生成一个SVC文件. 3.服务代码 ...

  2. supersr--KVO/KVC

    KVO内部实现原理 1.KVO是基于runtime机制实现的. 2.当某个类的对象第一次被观察是,系统就会在运行期动态地创建该类的一个派生类,在这个派生类中重写基类中任何被观察属性的set方法.派生类 ...

  3. Ubuntu(Linux)使用Eclipse搭建C/C++编译环境

    转自:http://www.cppblog.com/kangnixi/archive/2010/02/10/107636.html 首先是安装Eclipse,方法有两种:       第一种是通过Ub ...

  4. 如何解决exe4j生成exe文件后弹出提示信息

    使用exe4j生成exe文件时会提示以上一段信息,这个主要是没有注册导致的,在welcome to exe4j的右下角有一个注册信息的地方,去找个注册码,就OK了. 通用注册码:L-g782dn2d- ...

  5. python基础——错误处理

    python基础——错误处理 在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数 ...

  6. 51nod1049(计算最大子段和)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1049 题意:又是仲文题诶- 思路:暴力会超时,又好像没什么专门 ...

  7. 1 Ionic和Hybird应用介绍

    1.Ionic是什么,它和Angular.Cordova有什么关系? Ionic通过整合各种技术和功能使构建Hybird应用更加快速.容易和美观.Ionic生态系统基于Angular和Cordova, ...

  8. PortSentry是入侵检测工具中配置最简单、效果最直接的工具之一

    https://sourceforge.net/projects/sentrytools/ [root@localhost ~]# tar -xzvf portsentry-1.2.tar.gz [r ...

  9. WPF框架MVVM简单例子

    MVVM是Model-View-ViewModel的缩写形式,它通常被用于WPF或Silverlight开发.Model——可以理解为带有字段,属性的类.View——可以理解为我们所看到的UI.Vie ...

  10. jQuery Mobile学习之grid、等待显示的ajax效果、页面跳转、页面跳转传递参数等(二)

    Index.cshtml <!-- Start of second page --> <section data-role="page" id="bar ...