如何使用安卓模拟器测试蓝牙应用程序?

160

我正在开发一款应用程序,需要向蓝牙打印机发送打印请求。该代码对实际设备有效,但我想在Android模拟器上运行它。我该如何使用模拟器进行蓝牙测试?


2
你不能使用模拟器进行蓝牙操作。既然它在设备上可以运行,为什么要在模拟器上运行呢? - Ketan Ahir
8个回答

197

你无法使用模拟器。如SDK文档和其他几个地方所述,模拟器不支持蓝牙。Android模拟器 没有蓝牙功能

你只能使用真实设备。

模拟器限制

模拟器的功能限制包括:

  • 无法实际打电话或接听电话。但是,你可以通过模拟器控制台模拟打电话和接听电话。
  • 不支持USB
  • 不支持连接到设备的耳机
  • 无法检测SD卡的插入/弹出
  • 不支持WiFi、蓝牙、NFC

请参考文档


最近出现了这个:https://google.github.io/bumble/platforms/android.html他们说他们可以模拟许多蓝牙协议;不过你需要编写设备行为。 - undefined

96

这里下载Androidx86。因为这是一个.iso文件,所以您需要像VMWare或VirtualBox这样的软件来运行它。创建虚拟机时,需要将客户操作系统的类型设置为Linux而不是Other。

在创建虚拟机后,将网络适配器设置为“Bridged”。启动虚拟机并选择引导时的“Live CD VESA”选项。

现在,您需要找到该虚拟机的IP地址。在虚拟机中打开终端(使用Alt + F1和Alt + F7切换),然后使用netcfg命令查找IP地址。

现在,您需要打开命令提示符并转到安装Android的文件夹(在主机上)。通常情况下,这是C:\Program Files\Android\android-sdk\platform-tools>。

输入adb connect IP_ADDRESS。完成!现在您需要添加蓝牙。插入USB蓝牙适配器/蓝牙设备。

在VirtualBox屏幕上,转到Devices > USB devices。选择您的适配器。

完成!现在您的Android虚拟机已经有了蓝牙。尝试启用蓝牙并与其他设备进行配对。

现在,您只需要进入Eclipse并运行程序。Android AVD管理器应该会在设备列表中显示虚拟机。

另外,在虚拟机的设置下,转到serialports->Port 1勾选启用串口选择端口号,然后选择端口模式为断开连接,单击确定。现在,启动虚拟机。在设备 - > USB设备中,您可以找到列出的笔记本电脑蓝牙。您只需勾选该选项并开始测试Android蓝牙应用程序即可。

来源


4
在像VirtualBox这样的通用模拟器中安装Android应该是可行的,我在网上的各个地方多次看到了这种方法的描述。 - gaborous
3
源链接似乎为http://niro-offonatangent.blogspot.fr/2011/06/bluetooth-support-on-android-emulator.html - Thomasleveil
1
是的,还有这个:http://developer.android.com/guide/topics/connectivity/bluetooth.html#EnablingDiscoverability - Sree
10
如果主机电脑有内置的BLE,那么可以使用它来代替USB的dongle吗? - mr5
6
非常好,谢谢!在免费的VMWare播放器中工作。对于第3步,IP地址也可以在“设置”->“关于手机”->“状态”(向下滚动)中查找。虽然我的安装中找不到"netcfg",但ifconfig eth0解决了问题。 - Maxim Paperno
显示剩余4条评论

11

最近似乎有所变化,他们现在也支持蓝牙功能的模拟器,并提供了新的API版本和Google Play服务。

我正在使用API级别32和Google Play服务创建模拟器。

enter image description here


1
但是如何将其与真实设备配对呢?在我的端上,信标也是可见的,但似乎无法检测到真正的蓝牙设备。 - Just Shadow
2
不行,无法与真实设备配对。这是为测试目的而称为“虚拟蓝牙”的功能。链接 - ZHANG Cheng
你现在可以连接到物理设备了 :) Google的实验性软件Bumble是一个有前途的工具。 - Yudop

8

现在,在Android Studio 2022.1.1 (Electric eel)中,您可以在两个模拟器之间使用蓝牙连接。 Google的官方文档


1
该链接现在指向新版本。在waybackmachine上找到了原始版本。 - Alex Telon
我非常确定这个答案是错误的。你提供的文档似乎只表明你可以测试与一些模拟蓝牙设备的配对,而不是在模拟器之间进行连接。 - Alex Telon
现在,您可以通过GRPC服务器和android-netsim协议与其他BLE模拟设备进行通信。一个明显的例子是谷歌的实验性软件Bumble,它允许创建虚拟hci接口并连接到Android和许多其他接口。 - Yudop

2

0

0
模拟器不支持蓝牙功能,但你可以模拟打开和关闭蓝牙,仅此而已,无法实现蓝牙连接。

1
你的回答可以通过提供更多的支持性信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的回答是否正确。你可以在帮助中心找到更多关于如何撰写好的回答的信息。 - undefined

0
实际上,我们无法在模拟器上运行蓝牙服务。它需要蓝牙硬件支持,但模拟器在工作室应用程序内部本地运行,无法访问系统硬件。 因此,唯一的方法是在移动设备上测试应用程序。

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