如何在Android模拟器中使用蓝牙?

34

我想创建一个基于Android蓝牙操作的应用程序。我正在使用以下代码:

 BluetoothAdapter adapter=BluetoothAdapter.getDefaultAdapter();

适配器返回了null值,这意味着安卓模拟器没有蓝牙功能。我正在使用2.1版本的安卓最新版。谁知道如何从安卓模拟器使用蓝牙,请帮帮我。


这个答案似乎有效... https://dev59.com/eGEh5IYBdhLWcg3wRRqh#22604411 - 130nk3r5
8个回答

50

很抱歉,你不能这样做。正如SDK文档和其他几个地方所提到的那样,模拟器不支持蓝牙。

而且你已经发现了这一点:"适配器返回空值,这意味着Android模拟器没有蓝牙功能。"


16
你可以将图像从http://www.android-x86.org/安装到虚拟机(例如VMWare),找出其IP地址,然后连接到该地址。
adb connect <IP of VM>

然后,在Eclipse中通过在Debug/Run配置中设置“手动”部署目标来启动您的项目。蓝牙在这个虚拟机中至少在我的Macbook上可以工作,并且据报道还可以与其他几个蓝牙芯片组一起工作。


如果我连接一个蓝牙适配器到我的系统上,有没有办法通过它使用蓝牙? - Suman Roy
如果您有一个USB dongle并确保它已经通过并连接到虚拟机,我会认为它可以工作。 - drott

3
无法在模拟器上运行蓝牙应用程序,因为模拟器不支持蓝牙。请参考此链接http://developer.android.com/guide/developing/devices/emulator.html Emulator Limitations
在此版本中,模拟器的限制包括:
- 不支持实际电话的拨打或接听。但您可以通过模拟器控制台模拟电话(拨出和接听)。 - 不支持 USB 连接。 - 不支持相机/视频捕获(输入)。 - 不支持连接设备的耳机。 - 不支持确定连接状态。 - 不支持确定电池充电水平和交流充电状态。 - 不支持确定 SD 卡的插入/弹出。 - 不支持蓝牙。

2

我正在计划一款工具,能够在Linux下模拟蓝牙通过TCP/IP进行通信(将在GPL下免费发布)。

当没有真正的蓝牙设备时(例如想要模拟两台模拟的Android-x86或Linux机器之间的连接),这应该是解决方案。

也许当编译为Linux-ARM而不是Linux-x86时,它也可以在模拟器中运行。


这不是对问题的回答。如果必要的话,它应该是一条评论。 - arkascha

2

问:我的设备蓝牙不工作,我该如何调试?

答:第一步是阅读日志(adb logcat)!特别注意有关蓝牙的 ERROR 或 WARNING 级别消息。

Andoird 使用 Bluez,它带有一些非常有用的调试工具。以下是一些示例,按照我调试 BT 的大致顺序。

hciconfig -a  # print BT chipset address and features. Useful to
# check if you can communicate with your BT chipset.

hcidump -XVt  # print live HCI UART traffic.
hcitool scan  # scan for local devices. Useful to check if RX/TX works.
l2ping ADDRESS  # ping another BT device. Useful to check if RX/TX works.
sdptool records ADDRESS # request the SDP records of another BT device.

您可以从http://www.android-videos.blogspot.com/安装蓝牙插件。安装完成后,您就可以在模拟器中使用蓝牙了。


8
视频链接中没有蓝牙插件的链接。 - JPM

1

是的,我同意,目前模拟器不支持蓝牙。

要编译启用蓝牙支持的Android,请将以下行添加到BoardConfig.mk中。

BOARD_HAVE_BLUETOOTH := true

1
你可以在VirtualBox或VMWare镜像中运行你的应用程序,但需要使用Android系统。更多信息请参见此处(教程是关于蓝牙低功耗的,但适用于其他蓝牙版本):在Android模拟器上使用蓝牙低功耗

0

模拟器不支持蓝牙,正如SDK文档中所述。您必须在真实设备上检查此功能。

如果出现“Bluetooth binder is null”错误,则表示模拟器没有蓝牙功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接