Ⅰ android 蓝牙信号强度值怎么转换成距离
30、查询蓝牙设备
指令 响应 参数
Param1:蓝牙地址
Param2:设备类 AT+INQ +INQ: <Param1>,<Param2>,<Param3>,
OK
Param3:RSSI 信号强度
举例说明 1:
at+init\r\n ——初始化 SPP库(不能重复初始化) OK
at+iac=9e8b33\r\n——查询任意访问码的蓝牙设备 OK
at+class=0\r\n ——查询各种蓝牙设备类
at+inqm=1,9,48\r\n——查询模式:带 RSSI信号强度指示,超过 9个蓝牙设备响应则终止查询,设定超 时
为 48x1.28=61.44秒。
At+inq\r\n ——查询周边蓝牙设备
+INQ:2:72:D2224,3E0104,FFBC
+INQ:1234:56:0,1F1F,FFC1
+INQ:1234:56:0,1F1F,FFC0
+INQ:1234:56:0,1F1F,FFC1
+INQ:2:72:D2224,3F0104,FFAD
+INQ:1234:56:0,1F1F,FFBE
+INQ:1234:56:0,1F1F,FFC2
+INQ:1234:56:0,1F1F,FFBE
+INQ:2:72:D2224,3F0104,FFBC OK
Ⅱ 蓝牙设备之间可以测距离吗
应该是可以的,但不会有太大的市场吧?现在测距的工具很多的.
第一,不管怎么说,蓝牙都是一种电磁波的,所以可以使用电磁波原理测距.但绝不会根据信号的强弱的,因为这个受影响较大,比如快没有电时有电足时绝对不同的.
第二,可以使用相位测距,但成本过高.
第一种的原理是,发射位置与接收位置的距离,可以中间有一个镜子进行反射的.根据发射时间与接收时间进行测距,当然,这种方法用不到电脑上的.且误差是+/-1M左右.按时间与传播的速度得出的.
第二种原理,可以让蓝牙同时发身不同波长的波,接收后可以得到相应的处理,因为是同时发射击,而不同波在接收后查看其查关的相位.然后进行一些复杂的计算,如果其两个波长又时相位重合,则这个距离一定是波长最小公倍数的整数倍.若是发送10个不同波长的波时,你想十个最小公倍数进行计算可能会达到多少呢?要是更多呢?这往往是激光测距仪的原理的,这样更精确.精度可以达到最短波长的(原理上).但距离是蓝牙的传输限制,只可能是200M以内,差有怕是20M都没有的!
Ⅲ Android怎么检测蓝牙的连接状态如果一段断开,我这边怎么检测得到
按照蓝牙规范,一旦超时连接断开,会返回上层Disconnect complete Event with reason code: supervision timeout.可以根据该原因码,检测连接状态,具体方法为:
1、BluetoothAdapter 顾名思义,蓝牙适配器,直到建立bluetoothSocket连接之前,都要不断操作它BluetoothAdapter里的方法很多,常用的有以下几个:cancelDiscovery() 根据字面意思,是取消发现,也就是说当正在搜索设备的时候调用这个方法将不再继续搜索disable()关闭蓝牙enable()打开蓝牙,这个方法打开蓝牙不会弹出提示,更多的时候需要问下用户是否打开,一下这两行代码同样是打开蓝牙,不过会提示用户:Intemtenabler=newIntent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enabler,reCode);//同startActivity(enabler);
getAddress()获取本地蓝牙地址getDefaultAdapter()获取默认BluetoothAdapter,实际上,也只有这一种方法获取BluetoothAdaptergetName()获取本地蓝牙名称。
2、getRemoteDevice(String address)根据蓝牙地址获取远程蓝牙设备getState()获取本地蓝牙适配器当前状态(感觉可能调试的时候更需要)isDiscovering()判断当前是否正在查找设备,是返回true***isEnabled()判断蓝牙是否打开,已打开返回true,否则,返回false***(String name,UUID uuid)根据名称,UUID创建并返回BluetoothServerSocket,这是创建BluetoothSocket服务器端的第一步startDiscovery()开始搜索,这是搜索的第一步2.BluetoothDevice看名字就知道,这个类描述了一个蓝牙设备(UUIDuuid)根据UUID创建并返回一个BluetoothSocket这个方法也是我们获取BluetoothDevice的目的——创建BluetoothSocket
这个类其他的方法,如getAddress(),getName(),同BluetoothAdapter。
Ⅳ android如何用蓝牙GPS
该软件可以使用,第一次启动慢一些,Google
地图,一些GPS测试软件也可以调用外部GPS数据,但凯立德侦查不到外部GPS的数据
Ⅳ 什么是android 蓝牙
andriod是智能手机的操作系统,蓝牙就是我们手机上用的无线数据传输工具,它的意思就是安卓系统手机的蓝牙
Ⅵ android 蓝牙室内定位 ibeacon 关于RSSI算法
可以通过高斯权重法来对最终的位置进行加权计算。同时你也可以考虑采用滤波来进行修正。
Ⅶ Android 蓝牙测距离,两部蓝牙手机距离
/**
*功能:根据rssi计算距离
*Createdbyliuhuichaoon2017/1/17.
*/
publicclassRssiUtil{
//A和n的值,需要根据实际环境进行检测得出
privatestaticfinaldoubleA_Value=50;/**A-发射端和接收端相隔1米时的信号强度*/
privatestaticfinaldoublen_Value=2.5;/**n-环境衰减因子*/
/**
*根据Rssi获得返回的距离,返回数据单位为m
*@paramrssi
*@return
*/
publicstaticdoublegetDistance(intrssi){
intiRssi=Math.abs(rssi);
doublepower=(iRssi-A_Value)/(10*n_Value);
returnMath.pow(10,power);
}
}
扫描蓝牙过程中获得信号强度:
[java]view plain
/*监听扫描过程中的变化*/
=newBroadcastReceiver(){
@Override
publicvoidonReceive(Contextcontext,Intentintent){
Stringaction=intent.getAction();
//Whendiscoveryfindsadevice
if(BluetoothDevice.ACTION_FOUND.equals(action))
{
//
//通过EXTRA_DEVICE附加域来得到一个BluetoothDevice设备
BluetoothDevicedevice=intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
//Ifit'salreadypaired,skipit,becauseit'sbeenlistedalready
//如果这个设备是不曾配对过的,添加到list列表
/*if(device.getBondState()!=BluetoothDevice.BOND_BONDED)
{*/
//信号强度
intrssi=intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE);