问题标签 [android-bluetooth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
39175 浏览

android - 如何确定 Android 设备是否支持低功耗蓝牙

似乎 Nexus 7 第一代不支持低功耗蓝牙,至少当我完全按照教程中的步骤操作时

http://developer.android.com/guide/topics/connectivity/bluetooth-le.html

我确实在以下代码上完成了应用程序:

当然,我检查过,蓝牙已启用。

所以问题是,如何确定设备是否支持蓝牙低功耗标准?

更新:我使用的是安卓 4.3

0 投票
1 回答
3821 浏览

java - BroadcastReceiver 在蓝牙连接时通知

当蓝牙连接到另一台设备时,我想做一个BroadcastReceiver通知我。

和 AndroidManifest.xml

但是当设备连接时,什么也没有发生,为什么?

0 投票
1 回答
1957 浏览

android-bluetooth - BluetoothServerSocket accept() 未在 HTC Desire 上返回

我正在基于众所周知的 BluetoothChat 示例开发支持蓝牙的应用程序。基本上,使用这个应用程序,客户端可以将一些数据包发送到服务器。

我已经使用两部 Xperia 智能手机(Xperia X8 和 Xperia Sola,android 2.1 和 4.0)测试了该应用程序,一切正常:它们都可以充当客户端或服务器。

不幸的是,如果我使用 HTC Desire (android 2.3) 作为服务器,它将无法接受来自 Xperia 客户端之一的传入连接。似乎客户端connect()返回好像一切都很好,但服务器却被阻止了accept(),好像什么都没发生一样。

相关代码片段:

1.“接受线程”

2.“连接线程”

3.“通信线程”(BluetoothChat 示例中的 ConnectedThread)

所以问题的步骤如下:

  1. HTC Desire 服务器调用accept()
  2. Xperia 客户端调用connect()
  3. connect返回好像连接已建立
  4. HTC 什么都没有发生,总是被屏蔽accept()
  5. Xperia 客户端认为它已连接,因此它创建了 CommunicationThread 并调用了阻塞read();此函数抛出java.io.IOException: Software caused connection abort,可能是因为套接字未连接。

最后这些是相关的日志:

Xperia 客户端:

宏达服务器

真正奇怪的是,如果将 HTC Desire用作客户端,而将其中一台 Xperia 用作服务器,它就可以工作。

那么,是我的应用程序有问题还是 HTC Desire 蓝牙堆栈有问题?

0 投票
2 回答
3783 浏览

java - 如何在 Android 中获取对等设备的蓝牙名称?

如何获取Bluetoothandroid 设备通过它连接的对等设备的信息(名称、Mac 地址……)Bluetooth

0 投票
1 回答
162 浏览

android - 连接蓝牙设备时出错

我有一个错误,找不到任何想法的解决方案?这是错误:BluetoothAdapter 类型中的方法 listenUsingRfcommWithServiceRecord(String, UUID) 不适用于参数 (String, String)

0 投票
1 回答
382 浏览

android - 我应该在服务或应用程序中保留 Android 蓝牙服务器线程吗?

只要 Android 手机处于开启状态,我就想保持蓝牙服务器线程处于活动状态。我应该在服务还是应用程序中管理线程?服务、应用,哪一个活得更久?

0 投票
1 回答
135 浏览

android - Android 消息通过蓝牙传递

我正在开发一个通过蓝牙传递消息的应用程序。我想将一条消息从一台设备传递到另一台设备(设备已经配对)我能够显示配对的设备。但我不知道如何连接两个设备。任何人都可以告诉我应该遵循哪些步骤。如何在两部手机之间建立连接?

}

0 投票
1 回答
1939 浏览

android - 如何在 Android 中通过蓝牙传输来电的音频

我能够接收、挂断和拨打我通过 连接headset到的号码。android mobilebluetooth

现在,一旦我在耳机中收到手机的来电,我需要通过耳机与被叫方通话。我需要通过蓝牙将我的声音传输到安卓手机。我正在寻找这段代码。

抓取了 n 个帖子但无法得到适当的答案,目前正在使用下面但它不起作用...

我不确定在此之后我需要编写哪一行代码来实现我的要求

mmOutStream.write("ATA\r".getBytes());注意:我通过将此 AT 命令发送到我的 Android 手机来接听来电。

请纠正并指导我执行音频流。

0 投票
2 回答
374 浏览

android - Android BLE 重新连接问题

我有和 Android 设备连接到 BLE 设备。如果我重新启动 android 设备,它会立即连接并正常工作。如果我关闭应用程序并重新启动后,它将连接但永远不会收到任何特征更改通知。

当我关闭应用程序并重新启动时,它基本上可以正常工作。

如果我去蓝牙设置并关闭蓝牙并重新打开它,在这种情况下,应用程序也直接连接并且工作正常。

我正确关闭并清理所有相关资源并正确退出,并且在 DDMS 中也看不到该应用程序。

但似乎即使在驱动程序级别,它仍然处于连接状态,并且 BLE 设备仍在发送数据。

谢谢

0 投票
1 回答
208 浏览

java - 蓝牙 HID 服务器永远接受阻塞

我正在为一个小型且非常简单的蓝牙遥控器编写蓝牙 HID 服务器。我正在关注这里的文档。

我的申请许可包括:

这是我的BluetoothServerSocket 阅读连接接受线程:

MyBluetoothServerSocket是这样构造的套接字:

我上面使用的 UUID 是我的遥控设备通过以下方法报告的唯一一个:

并且MyBluetoothAdapter只是默认适配器:

所涉及的其余代码很少(确保蓝牙已打开,选择正确的设备)并正常工作。遥控器与手机绑定。

上面代码中标记为有问题的行 ( accept()) 永远不会返回,即它永远阻塞。我究竟做错了什么?

编辑:我试过MyBluetoothAdapter.listenUsingInsecureRfcommWithServiceRecord没有成功。