计算公式: d = 10^((abs(RSSI) - A) / (10 * n)) 其中: d - 计算所得距离 RSSI - 接收信号强度(负值) A - 发射端和接收端相隔1米时的信号强度 n - 环境衰减因子 计算公式的代码实现 - (float)calcDistByRSSI:(int)rssi { int iRssi = abs(rssi); float power = (iRssi-59)/(10*2.0); return pow(10, power); } 传入RSSI值,返回距离(…
首先,我们要去连接蓝牙模块,那么,我们只要写客户端的程序就好了,蓝牙模块就相当于服务端. 连接就需要UUID. #蓝牙串口服务SerialPortServiceClass_UUID = ‘{00001101-0000-1000-8000-00805F9B34FB}’ private UUID mUuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); 第一步: 首先要连接设备.这个参考Android Develope…
自己写的App匹配蓝牙设备,不需要通过系统设置去连接. 匹配和通信是两回事. 用过Android系统设置(Setting)的人都知道蓝牙搜索之后可以建立配对和解除配对,但是这两项功能的函数没有在SDK中给出.但是可以通过反射来获取. Method[] hideMethod2 =BluetoothDevice.class.getMethods(); int k = 0; for (; k < hideMethod2.length; k++) { Log.e("BluetoothDevice…
利用CoreLocation.framework很容易扫描获得周边蓝牙设备,苹果开源代码AirLocate有具体实现,下载地址: https://developer.apple.com/library/ios/samplecode/AirLocate/Introduction/Intro.html 所获得的iBeacon在CoreLocation里以CLBeacon表示,其中有RSSI值(接收信号强度),可以用来计算发射端和接收端间距离. 计算公式: d = 10^((abs(RSSI) - A…
原文:http://www.cnblogs.com/lele/articles/2832885.html   为什么无线信号(RSSI)是负值 答:其实归根到底为什么接收的无线信号是负值,这样子是不是容易理解多了.因为无线信号多为mW级别,所以对它进行了极化,转化为dBm而已,不表示信号是负的.1mW就是0dBm,小于1mW就是负数的dBm数. 弄清信号强度的定义就行了: RSSI(接收信号强度)Received Signal Strength IndicatorRss=10logP,只需将接受…
匹配和通信是两回事. 1.用过Android系统设置(Setting)的人都知道蓝牙搜索之后可以建立配对和解除配对,但是这两项功能的函数没有在SDK中给出.但是可以通过反射来获取. 知道这两个API的宿主(BluetoothDevice): /** * 与设备配对 参考源码:platform/packages/apps/Settings.git * /Settings/src/com/android/settings/bluetooth/CachedBluetoothDevice.java */…
http://www.open-open.com/lib/view/open1390879771695.html 这篇文章将会详细解析BluetoothAdapter的详细api, 包括隐藏方法, 每个常量含义. 一 BluetoothAdapter简介   1.继承关系 该类仅继承了Object类;   2.该类作用   BluetoothAdapter代表了移动设备的本地的蓝牙适配器, 通过该蓝牙适配器可以对蓝牙进行基本操作, 例如 : 启动设备发现(startDiscovery), 获取已…
运行的时候,会报错: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setSubtitle(int)' on a null object reference 解决办法: 发现时是 actionBar出错,解决方法如下: 1.在这个onCreate函数中天加 getWindow().requestFeature(Window.FEATURE_ACTION_BA…
Managing a Connection When you have successfully connected two (or more) devices, each one will have a connected BluetoothSocket. This is where the fun begins because you can share data between devices. Using the BluetoothSocket, the general procedur…
第一步:声明Bluetooth Permissions <!-- 设置蓝牙访问权限 --> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 第二步:获取BluetoothAdapter,判断该设备是否支持蓝牙 Bl…