对于需要定位的情况,也不一定一定要集成高德和百度,android 原生也有自己GPS 定位,但是GPS 在室内是定位不到的,只能在室外定位。这样的话,通过GPS 定位,我们可以知道用户在室内还是室外,可以做适当的逻辑处理。

权限:

  <!-- 这个权限用于访问GPS定位 --><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><!-- 允许程序访问CellID或WiFi热点来获取粗略的位置 --><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

动态申请:

  if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(mContext, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 1);}

初始化:

  private void initLocation() {locationManager = (LocationManager) this.getSystemService(LOCATION_SERVICE);}

位置回调:

/*** 在室外才有这个回调,室内没有* */LocationListener listener = new LocationListener() {@Overridepublic void onLocationChanged(Location location) {}}@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {}@Overridepublic void onProviderEnabled(String provider) {}@Overridepublic void onProviderDisabled(String provider) {}};

设置监听:

 locationManager .requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME, 0, listener);

这里 MIN_TIME:

/*** 5S*/private static final int MIN_TIME = 1000 * 5 ;

由于室内没有回调,室外才有。我们可以监控回调烂判断是否在室内。

方法:在回调里每次都延迟消息发送(时间大于回调时间),延迟发送消息前,先remove 消息,当在室内的时候,这个延迟发送的时间就会成功发送(因为室外不停的回调,会不断的remove 消息,消息最终都不能到达)

代码:

    public void onLocationChanged(Location location) {ToastUtils.show("在室外了");handler.removeMessages(WHAT);handler.sendEmptyMessageDelayed(WHAT,6000);}
/*** 检测GPS Location 回调*/private Handler handler = new Handler(Looper.getMainLooper()){@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what){case WHAT:ToastUtils.show("现在在室内了。。。。。");break;}}};

OK。

Android 原生GPS定位 判断室内室外相关推荐

  1. Android原生GPS定位以及位置解析

    最近在写一个纯本地的APP项目,项目中要求获取当前坐标的经纬度以及城市名,以前只做过网络定位(百度API和高德API),但是这两个都需要联网实现.so,选择GPS无疑是最好的选择了.我大概的整理了一下 ...

  2. Android系统GPS定位实现

    一.定位方式简介 定位基本分为三种方式,特点如下: 1.wifi定位:IP地址定位,根据ip地址查询实际的地理位置,因为动态获取ip的操作,定位不准确 2.基站定位:根据基站(信号塔)的个数以及手机与 ...

  3. android gps定位工具类,Android原生GPS和网络定位工具类

    在应用开发中我们常常需要网络获取位置的方法,这里做一个工具类的封装,使用的是Android原生定位,包含两种方式,一种是原生GPS一种是网络定位的封装实现: 工具类代码如下所示: package co ...

  4. Android原生Gps获取定位

    去年公司写东西用到了这个,然后遗忘了,今年又来一波这个功能整理一下吧. 老样子,拷贝可用!!!把每一个类拷贝上就行!!! 首先是工具类: GPS定位,第一个类 public class GPSLoca ...

  5. android 手机 GPS定位

    欢迎转载,转载请注明出自:www.androidkaifa.com,安卓开发网            开发中对于地图及地理位置的定位是我们经常要用地,地图功能的使用使得我们应用功能更加完善,下面www ...

  6. android开发GPS定位测试(附效果图和示例)【转】

    本人做了GPS相关的嵌入式软件已经几年了,所以说起要做个测试 GPS定位模块的程序,第一反应就是串口读取GPS模块的数据,然后解析GPS的NMEA格式数据 今天因为工作需要,把以前编写的一个GPS测试 ...

  7. Android的gps定位

    //GPS定位不需要在网络条件下可以运行,但是室内没法定位,必须到空旷的街道上(天上卫星与GPS芯片进行交互) import android.app.Service; import android.c ...

  8. uniapp | 打开iOS和Android实现GPS定位权限

    原来真的有人,删掉手机里所有的娱乐软件,不管不顾任何东西,没日没夜的学习,就只是为了回到原来那个眼里有光被赋予希望的自己. 你要坚信每一个你想学习的念头,都是未来在向你求救! 懒惰是一个特别奇怪的东西 ...

  9. android 百度坐标 gps,Android中gps定位不返回经纬度的解决方案

    定位,算是android应用中一个非常常见的功能了吧,并且大部分的应用里基本也都会用到地图,所以以前的做法基本都是直接接入了百度.高德这些第三方定位,也没遇到过什么问题. 然而,最近的工作基本上都是做 ...

  10. Andorid获取原生GPS定位信息

    @SuppressLint("MissingPermission")@TargetApi(Build.VERSION_CODES.M)public Location getLoca ...

最新文章

  1. 哈佛大学惊人发现:新冠对人类未来影响巨大!
  2. 一个母婴电子商务网站贝贝网的大数据平台及机器学习实践【转】
  3. 【JS】两种计时器/定时器
  4. python链表的创建_python数据结构之链表的实例讲解
  5. mybatis resultMap 的日期字段无法获取时分秒的两个问题
  6. 整整4个月了,尽全力组织了源码共读活动~
  7. 72 include动作和指令的区别
  8. android 外部内容分享到app内,外部跳转APP
  9. 四.树莓派更改输入法与支持中文
  10. 4.C++深入理解 面向对象部分3
  11. AES、DES加解密方法(Java和JS编程)
  12. IT兄弟连 JavaWeb教程 Servlet会话跟踪 Session优缺点
  13. 【DCVRP】基于matlab遗传和粒子群算法求解带容量的车辆路径规划问题【含Matlab源码 1034期】
  14. 2020美赛MCM/ICM参赛及获奖分析
  15. 静态测试和动态测试相关知识点
  16. 除了 P站,原来还有A、C、D、E、G、H、K、M、N ... 站,全是老司机!
  17. 看完张一鸣、王兴、雷军的600条语录,整理出给年轻人的50条建议!
  18. 从零开始配置腾讯云 CDN的设置教学
  19. crontab -r删除后恢复
  20. PLSQL Developer13.0.4安装破解教程

热门文章

  1. css实现背景图片透明内容不透明
  2. 9-11-12 h5总结~文档对象模型、点击事件
  3. 如何提取网易公开课的音频
  4. 花了两万块参加培训,简历投了1000多份,两个月了还是没找到工作
  5. 【五线谱】调号 ( 调号标识位置 | 调号标记列表 | A 大调标识原理 | F、C、G 位置标记升号 # | F 大调标识原理 | B 位置标记降号 b )
  6. 2018年12计算机应用基础统考,2018年12月统考通知
  7. MySql 报错:In aggregated query without GROUP BY, expression #1 of SELECT list contains....
  8. 祖母是一片不知愁的落叶
  9. 惠安高考状元2021成绩查询6,高考总分相同排名标准不同 惠安一县两“状元”
  10. go语言 过滤 html,golang 去除html标签-Go语言中文社区