工作中用到检测蓝牙和GPS
蓝牙的检测需要用到的知识:

BluetoothAdapter.ACTION_STATE_CHANGED  检测是否打开蓝牙设备

BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED 本来是检测链接状态的,但是无效
BluetoothDevice.ACTION_ACL_CONNECTED 蓝牙建立连接发起时会调用

BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED 无效
     BluetoothDevice.ACTION_ACL_DISCONNECTED 无效

检测是否有蓝牙匹配可以通过获取匹配列表的方法来设置
 <span style="white-space:pre">    </span>BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();if(bluetoothAdapter!=null){Set<BluetoothDevice> bondedSet = bluetoothAdapter.getBondedDevices();if(bondedSet!=null&&bondedSet.size() > 0){return true;}
GPS的检测需要用的知识:
com.android.settings.location.MODE_CHANGING  检测是否打开GPS
关于是否定位成功需要用到
<span style="white-space:pre"> </span>private boolean wasGPSFix = false;<span style="white-space:pre"> </span>// http://stackoverflow.com/questions/2021176/how-can-i-check-the-current-status-of-the-gps-receiver<span style="white-space:pre">    </span>// answer from soundmaven<span style="white-space:pre">   </span>private class GPSFixListener implements GpsStatus.Listener {public void onGpsStatusChanged(int event) {switch (event) {case GpsStatus.GPS_EVENT_SATELLITE_STATUS:Log.d(TAG, "GPS_EVENT_SATELLITE_STATUS"+mLastLocationMillis);//Toast.makeText(mContext, "GPS_EVENT_SATELLITE_STATUS", Toast.LENGTH_LONG).show();isGPSFix = (SystemClock.elapsedRealtime() - mLastLocationMillis) < 10000;if (isGPSFix != wasGPSFix) { // only notify on changeswasGPSFix = isGPSFix;if(isGPSFix){//Toast.makeText(mContext, "GPS fixed", Toast.LENGTH_LONG).show();}sendFixBroadCast(isGPSFix);}break;case GpsStatus.GPS_EVENT_FIRST_FIX:// Do something.sendFixBroadCast(true);Log.d(TAG, "GPS_EVENT_FIRST_FIX");Toast.makeText(mContext, "GPS_EVENT_FIRST_FIX", Toast.LENGTH_LONG).show();break;}
然后在 onlocationChange 中记录时间
@Override
public void onLocationChanged(Location location) {if (location == null) return;mLastLocationMillis = SystemClock.elapsedRealtime();// Do something.mLastLocation = location;
}
Listener的注册和注销
<span style="white-space:pre"> </span>gpsListener = new GPSFixListener();
<span style="white-space:pre"> </span>locationManager.addGpsStatusListener(gpsListener);
<span style="white-space:pre"> </span>if (gpsListener != null) {locationManager.removeGpsStatusListener(gpsListener);}

Android Tips: 蓝牙和GPS的检测相关推荐

  1. Android常用的蓝牙,GPS,网络等状态检测方法汇总

    序言 记录Android的一些判断网络,蓝牙,GPS,等设备状态的方法. 1.判断网络是否可用 // 是否有可用网络private boolean isNetworkConnected() {Conn ...

  2. Android实现蓝牙(BlueTooth)设备检测连接

    项目要求实现蓝牙设备搜索连接,Android为蓝牙技术提供了4个工具类,分别是蓝牙适配器BluetoothAdapter.蓝牙设备BluetoothDevice.蓝牙服务端套接字BluetoothSe ...

  3. Android BLE蓝牙开发知识总结

    Android BLE蓝牙开发知识总结 1.蓝牙介绍 1.1什么是蓝牙?    蓝牙( Bluetooth® ):是一种无线技术标准,可实现固定设备.移动设备和楼宇个人域网之间的短距离数据交换(使用2 ...

  4. Android 低功耗蓝牙开发

    初识低功耗蓝牙 Android 4.3(API Level 18)开始引入Bluetooth Low Energy(BLE,低功耗蓝牙)的核心功能并提供了相应的 API, 应用程序通过这些 API 扫 ...

  5. [免费专栏] ATTACK安全之Android车机证书攻击场景检测「检测系统代理」

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 ATTACK付费专栏长期更新,本篇最新内容请前往: [车联网 ...

  6. Android低功耗蓝牙(BLE)使用详解

    代码地址如下: http://www.demodashi.com/demo/13390.html 与普通蓝牙相比,低功耗蓝牙显著降低了能量消耗,允许Android应用程序与具有更严格电源要求的BLE设 ...

  7. Android BLE蓝牙踩坑总结

    简介 自从Android-BLE库开源了一段时间以来,越来越多的小伙伴问到了各种各样的关于BLE的奇怪问题,在这里我想跟大家分享一下本人对于Android BLE蓝牙的一些看法和解决方式,避免刚接触的 ...

  8. 浅析Android地理定位(GPS)

    浅析Android地理定位(GPS) 定位权限 介绍一下定位相关的一些API LocationManager 位置提供器 requestLocationUpdates Geocoder Criteri ...

  9. android 传统蓝牙Bluetooth联通性

    Android平台包含了对蓝牙网络协议栈的支持,它允许一个蓝牙设备跟其他的蓝牙设备进行无线的数据交换.应用程序通过Android蓝牙API提供访问蓝牙的功能.这些API会把应用程序无线连接到其他的蓝牙 ...

最新文章

  1. python 3元运算符
  2. List集合的三个实现类比较
  3. 图解使用PowerTool对Windows内核做初步研究探索
  4. docker设置镜像源 树莓派_树莓派上 Docker 的安装和使用
  5. linux网络编程之posix 线程(三):posix 匿名信号量与互斥锁 示例生产者--消费者问题
  6. Datawhale 三月组队学习计划
  7. 【Advanced Windows Phone Programming】在windows phone 8中录制MP3和AAC及Amr音频
  8. Java设计模式(四)——再谈观察者模式
  9. 重磅!!Redis 6.0.0 已发布,有史以来改变最大的版本
  10. python学习第十弹:宝可梦数据分析-平民最强
  11. 《Axure RP 8 实战手册》pdf
  12. r610服务器维修,戴尔服务器R610
  13. 类工厂模式(TDB)
  14. 锐捷睿易:扩大DHCP掩码导致AP不上线问题
  15. android图片模糊效果,Android下实现高效的模糊效果
  16. Hadoop服务器集群崩溃的解决方案
  17. RationalDMIS 7.1 量块程序 2020
  18. hive的UDF函数的使用。常见UDF函数
  19. Tomcat服务器端口修改
  20. vue 数据大屏使用数字字体

热门文章

  1. 产品需求说明书模版总结
  2. 简单聊聊MySQL临时表(TEMPORARY TABLE)
  3. CF29B Traffic Lights
  4. 07-ioctl控制LED软件实现(寄存器操作)
  5. Finite Difference Frequency Domain(FDFD) 算法和C++实现
  6. 一个基本成功的TM模式FDFD代码
  7. Python matplotlib模块实现数据可视化
  8. PMD 自定义规则实践入门样例
  9. MakeBlock mbot 和 ultimate2.0 的 蓝牙手柄 通讯格式解析
  10. Java中的Hash碰撞是什么?该如何解决?