Articles of bluetooth

如何在我的应用程序中使用智能锁API来解锁模式模式?

我使用的是Android 5.0。 该版本提供SmartLockfunction,允许通过连接可信设备来解锁密码/模式。 我有一个蓝牙低功耗(BLE)设备,它注册为可信设备。 我想用BLE来解锁(模式模式)手机。 当BLE和手机连接并且事件可用数据时,它将解锁手机 if (BluetoothLeService.ACTION_DATA_AVAILABLE.equals(action)) // Calling unlock by the SmartLock API 如果有人使用SmartLock,请给我一些指导吗? 我没有find任何SmartLock API来做到这一点。

关于连接设备的Android BLE GATT_ERROR(133)

我正在尝试使用MAC地址连接到BLE设备。 BluetoothDevice device = bluetoothAdapter.getRemoteDevice(rememberedDeviceAddress) bluetoothDevice.connectGatt(context, false, bluetoothGattCallback); 即使我的BLE设备关闭,我在BluetoothGattCallback.onConnectionStateChange收到status = 133和newState = 2的回调。 newState = 2指的是BluetoothProfile.STATE_CONNECTED ,这意味着我连接到设备并且status = 133是GATT_ERROR(而不是status = 0 SUCCESS) 我没有得到注册回调错误的失败 。 设备:一加一(Android 4.4) 任何可能导致此问题的指针都会有所帮助。 注意:问题不会发生在所有设备上。 在Android 5.0的Nexus 5上,一切似乎都运行良好 请在下面find堆栈跟踪: 03-06 13:00:11.994: D/BluetoothGatt(26771): registerApp() 03-06 13:00:11.994: D/BluetoothGatt(26771): registerApp() – UUID=’uuid comes here’ 03-06 13:00:12.004: D/BluetoothGatt(26771): onClientRegistered() – status=0 clientIf=5 03-06 13:00:42.004: D/BluetoothGatt(26771): onClientConnectionState() […]

是否可以通过编程方式保持蓝牙遥控快门唤醒?

我有一个与我的Android手机配对的蓝牙遥控快门。 遥控快门就像一个蓝牙键盘。 我的应用程序愉快地处理由遥控快门创建的键盘事件,但遥控快门在90秒后进入hibernate状态,并且需要一键按下才能在发出下一次按键之前将其唤醒。 我需要一种机制来保持遥控器的唤醒状态,这样我就不会失去第一次按键。 (是的我知道睡眠模式是为了节省能量,但我需要低延迟)。 我尝试连接到设备作为客户端和服务器,希望我可以在OutputStream上发送一些东西到设备。 但我无法创建连接。 有没有办法以编程方式保持遥控快门唤醒? 基于以下答案,我怀疑不是 https://stackoverflow.com/a/15164926/493682 https://stackoverflow.com/a/36384946/493682 https://stackoverflow.com/a/31299825/493682 为了完整起见,配对设备的详细信息如下: name = AB Shutter3 MAC = Some_MAC_ADDRESS btClass = 2540 btType = 1 UUIDs = [00001124-0000-1000-8000-00805f9b34fb,00000000-0000-1000-8000-00805f9b34fb]

如何使用Mockito模拟Context?

我正在使用Context来访问WifiManager和BluetoothManager等系统级服务。 如何使用Mockito模拟这个getApplicationContext()?

如何使用BluetoothHeadset API获取蓝牙连接设备

我想获得蓝牙连接设备列表……而不仅仅是配对设备。 我在API级别11中find了BluetoothHeadset API,它提供了方法getConnectedDevices()来获取连接的蓝牙设备列表。 如何使用此API获取蓝牙连接设备列表?

Android和Lego Mindstorm NXT之间的蓝牙连接

有谁知道,如何在Android和LEGO-Mindstorm-NXT之间建立蓝牙连接? 两个NXT之间的连接工作正常。 但另一种Connectiontypes并不那么容易。 我正在使用LeJOS Firmware 0.85和Android SDK Tools(2.2 Froyo)。

Android蓝牙不安全Rfcomm的“服务发现失败”

有没有人知道如何在API级别2.3.3的2个Android设备之间创建不安全的RFCOMM连接,同时使用任意声明的服务名称? (不是随机或更改服务名称,只是我自己定义的服务名称) 细节 我试图在2个Android设备之间创建一个不安全的Rfcomm连接:Droid X2和华硕Transformer。 我假设这两款设备都具有Android 2.3.3级别的function,实际上可以使用不安全的Rfcomm。 当我尝试按照此处所述创建蓝牙连接时,使用now public createInsecureRfcommSocketToServiceRecord()和listenUsingInsecureRfcommWithServiceRecord(SERVICE,UUID),我得到一个报告: java.io.IOException: Service discovery failed at android.bluetooth.BluetoothSocket$SdpHelper.doSdp(BluetoothSocket.java:377) at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:201) at com.s4d.bluenomad.DeviceConnections$ClientThread.run(DeviceConnections.java:406) 我发现了一个相关的问题 ,即有人创建正常连接时会收到此错误并使用reflection来调用私有方法。 但是,我不知道现在的私有方法对应于启动“不安全”连接。 我尝试使用相关问题中提出的解决方案,但Android要求我配对设备,这正是我需要避免的。 我确实需要不安全的方法。 我甚至尝试了这里概述的官方和黑客解决方案的组合 相关代码片段 创建ServerThread以侦听连接 Log.i(TAG, “Constructing a ServerThread”); // Use a temporary object that is later assigned to serverSocket, // because serverSocket is final BluetoothServerSocket tmp = null; try { // […]

Android中的蓝牙设备发现 – startDiscovery()

目标:构建一个Android应用程序,发现范围内BT设备的名称和地址,并将其值提交给Web服务。 以前没有将BT设备绑定到主机设备上,我只想在我走动时查看所有内容。 我做了什么: 仔细阅读文档。 实现了主机设备的BT适配器的本地实例。 如果未启用BT,则实施启用BT的通知。 注册的广播接收者和意图来解析startDiscovery()的ACTION_FOUND 。 清单中注册的BLUETOOTH和BLUETOOTH_ADMIN权限。 在startDiscovery()之前一切正常(通过增量控制台日志记录测试startDiscovery() 。 挫折: startDiscovery() – 我怀疑我在错误的上下文中传递了这个。 该方法需要在什么上下文中才能正常运行? 如果你能够使用这种方法,我将非常感谢你的智慧。 更新 – 这是一个简化的代码简化版本,让我感到悲伤; 这种简化概括了我的错误。 这段代码运行,它不会抛出cat.log错误或其他错误,它根本不提供任何输出。 package aqu.bttest; import android.app.Activity; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.widget.Toast; public class BT2Activity extends Activity { private BluetoothAdapter mBTA; private SingBroadcastReceiver mReceiver; /** […]

未生成蓝牙HCI监听日志

我正在运行Android 4.4.2并启用了“Bluetooth HCI snoop log”,如此处所述嗅探/记录您自己的Android蓝牙流量 打开和关闭蓝牙后,我重新启动了手机。 我在预期的位置找不到日志文件: $ adb pull /sdcard/btsnoop_hci.log remote object ‘/sdcard/btsnoop_hci.log’ does not exist 我怎样才能到达btsnoop_hci.log?

由于棉花糖使用BluetoothAdapter.getDefaultAdapter()更新蓝牙发现.startDiscovery(); 被打破

我有一个使用蓝牙和连接到设备的应用程序,无法使用BluetoothAdapter.getDefaultAdapter()find任何设备.startDiscovery(); 它在发现之前就运行良好。 尝试过其他应用程序,它也不适用于其他应用程序。 但我尝试配对的设备(Arduino bt-module)可以在Android设置中find。 知道我能尝试什么吗? 我实现了http://developer.android.com/guide/topics/connectivity/bluetooth.html上描述的所有内容,它在更新之前有效。