标签: bluetooth

Android蓝牙低能耗配对

如何将蓝牙低功耗(BLE)设备与Android 配对以读取加密数据.

使用Android BLE页面中的信息,我能够发现设备,连接设备,发现服务和读取未加密的特征.

当我尝试读取加密的特性(一个会导致iOS显示弹出窗口要求配对然后完成读取)时,我收到错误代码5,这对应于认证不足.

我不确定如何使设备配对或如何提供读取完成的身份验证信息.

我通过尝试添加描述符来玩弄BluetoothGattCharacteristics,但这也不起作用.
任何帮助表示赞赏!

android bluetooth bluetooth-lowenergy gatt android-4.3-jelly-bean

33
推荐指数
1
解决办法
5万
查看次数

Windows/.Net中的蓝牙API?

我正在编写蓝牙扫描仪,用于定位和识别当地附近的移动设备.这是我可以使用C#完成的事情,还是我需要深入了解C/C++ API?我的应用程序针对Windows XP和Vista.指针表示赞赏.

谢谢!

.net c# windows windows-xp bluetooth

32
推荐指数
3
解决办法
6万
查看次数

没有用户确认的蓝牙配对

我可以通过蓝牙配对两台设备而无需在用户界面中确认,接受配对此设备.我可以通过NFC交换一些额外的数据,然后通过蓝牙安全地配对这两个设备而无需任何额外的用户操作吗?

android bluetooth nfc

32
推荐指数
2
解决办法
11万
查看次数

Linux命令行如何在没有引脚的情况下接受蓝牙设备的配对

有没有办法在Linux中配对设备而不需要引脚(出于测试目的,所以我需要在没有人工交互的情况下完成,假设你有root权限)?

bluez-simple-agent似乎需要一个引脚,除了一些简单的设备,如鼠标.

linux command-line bluetooth bluez

32
推荐指数
5
解决办法
10万
查看次数

如何使用广播接收器检测蓝牙状态变化?

我正在尝试创建一个在设备的蓝牙打开时显示祝酒的应用程序.即使我的应用程序没有运行,我也想这样做.所以我应该使用广播接收器,添加一些权限,一个intent-filter到android清单并制作一个java类,但我不知道细节.

我该怎么办?我应该使用哪些权限?

android bluetooth broadcastreceiver android-permissions

32
推荐指数
3
解决办法
4万
查看次数

Android 6.0 Marshmallow BLE:连接参数

在Android 6中,蓝牙低功耗连接参数管理似乎已经发生了变化.

我有一个BLE外围设备需要使用一些特定的连接参数(特别是连接间隔),我想使用BLE规范允许的最小连接间隔(即7,5ms).

Android SDK不允许从BLE GAP Central(智能手机)端选择它,因此正确的方法是让我的GAP外围设备L2CAP Connection Parameter Update Request在建立GAP连接后发送.

我要求的参数是:

  • conn interval min:7,5ms
  • conn interval max:7,5ms
  • 奴隶潜伏期:0
  • 监督超时:2000ms

这与我一直在测试的所有Android设备一样工作,从4.3到5.x:发送后L2CAP Connection Parameter Update Request,我的设备收到一个L2CAP Connection Parameter Update Response0x0000(接受),然后LE Connection Update Complete event我可以看到所请求的连接参数已经很好了考虑到了.

现在,使用Nexus 9平板电脑或2个不同的Nexus 5设备,都拥有Android 6.0.1,我可以看到它L2CAP Connection Parameter Update Request总是被拒绝(我收到的是L2CAP Connection Parameter Update Response0x0001(拒绝)).然后我收到一个LE Connection Update Complete event我可以看到所请求的连接参数未被考虑的地方.

我一直在尝试使用外设方面的两种不同的实现(一种是使用ST Microelectronics的BlueNRG,一种是使用Nordic Semiconductor的nRF52),两者的结果完全相同.

然后,经过更多的测试:我尝试了不同的参数集,更改了conn interval max(我保持其他参数相同).这是我发现的:

  • 如果conn interval max = 18.75ms,则接受更新请求,间隔设置为18.75ms
  • 如果conn interval max = 17.50ms,则接受更新请求,间隔设置为15.00ms
  • 如果conn …

android bluetooth bluetooth-lowenergy android-bluetooth android-6.0-marshmallow

32
推荐指数
2
解决办法
2万
查看次数

以编程方式与Android 4.4+上的BLE设备配对

有没有人有一个完整的工作示例,说明如何以编程方式配对使用密码输入(即6位数PIN)或Android 4.4或更高版本的数字比较的BLE( Bluetooth Classic)设备?通过'以编程方式'我的意思是我告诉Android PIN - 用户不会被提示.

在SO上有很多类似的问题,但它们要么a)关于蓝牙经典,b)旧(之前setPin()createBond()公开),或c)未答复.

我的理解如下.

  1. 您连接到设备并发现其服务.
  2. 您尝试阅读"受保护"特征.
  3. 设备返回身份验证错误.
  4. Android以某种方式启动配对,你告诉它PIN.
  5. 您现在可以阅读该特征.

我已经使用创建设备mBed上运行nRF51-DK和赋予它的单个特性.

我设置了安全参数,如下所示:

ble.securityManager().init(
    true, // Enable bonding (though I don't really need this)
    true, // Require MitM protection. I assume you don't get a PIN prompt without this, though I'm not 100% sure.
    SecurityManager::IO_CAPS_DISPLAY_ONLY, // This makes it us the Passkey Entry (PIN) pairing method.
    "123456"); // Static PIN
Run Code Online (Sandbox Code Playgroud)

然后在我使用的特征

requireSecurity(SecurityManager::SECURITY_MODE_ENCRYPTION_WITH_MITM);
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试使用Nordic Master Control Panel阅读它时,我收到一个如下配对请求通知: …

android bluetooth bluetooth-lowenergy pairing

32
推荐指数
2
解决办法
2万
查看次数

如何定期扫描android上的蓝牙设备

嗨,这可能听起来像一个愚蠢的问题.但我无法找到任何答案,因此发布在这里.

我正在构建一个室内应用程序,它不断扫描位于商场或图书馆等地方不同位置的蓝牙加密狗.当我手里拿着安卓手机进入商场时,我应该可以得到最近的加密狗,我可以连接to(愚蠢的想法,但我想用此做其他事情).为此,我应该能够连续扫描蓝牙设备.

请有人告诉我如何让android定期扫描可用的蓝牙设备.

android bluetooth discovery

31
推荐指数
3
解决办法
4万
查看次数

是否有可能使计算机充当蓝牙HID设备?

是否有可能使计算机充当蓝牙HID设备?也就是说,如果本地机器插有标准USB键盘,其他设备可以发现这台机器并将其用作蓝牙键盘.

我想创建一个linux或OS X应用程序(或使用现有的应用程序,虽然我没有找到),它可以像上面描述的那样运行,但我不知道从哪里开始,或者甚至可能.

所以:

  • 我所描述的可能吗?
  • 是否存在我所描述的现有应用程序?
  • 如果没有应用程序已存在(我假设没有),是否有蓝牙库或绑定有帮助?(我很高兴使用当今大多数流行的语言,所以我更喜欢一个最适合任务的库,只要它在linux或OS X中可用.)
  • 如果没有上述任何一项,蓝牙规格看起来非常密集.是否有适用于我能阅读的问题的具体指南或其他起点?

我意识到这样的应用程序很可能需要窃取正常的键盘输入,可能提供一些类似KVM的热键,用于在向主机操作系统提供输入和通过蓝牙将输入发送到连接设备之间切换,但我正在考虑这个问题超出了这个问题的范围.

linux macos bluetooth hid

31
推荐指数
1
解决办法
2万
查看次数

android ble慢慢连接

嗨,我正在编写一个Android应用程序来连接到BLE外围设备.Android 4.4.2,Galaxy Nexus.

我在设备上有一个LED指示连接状态.

问题是从connectGatt()调用到接收onConnectionStateChange 的持续时间STATE_CONNECTED是如此不一致.有时候它很快,但大部分时间需要5秒或更长时间.关闭/打开蓝牙没有任何影响.

我在PC上使用TI BLE Dongle 尝试了TI BTool,它总是能够非常快速地建立连接.

我也试过iPhone 5S,它也很快.

  1. 任何人都遇到过这个问题吗?
  2. 我们有什么机会改善这个吗?

performance android bluetooth connect bluetooth-lowenergy

31
推荐指数
2
解决办法
1万
查看次数