并发启动多台Android设备

并发启动多台Android设备,descired capability中需要添加 systemPort 这个参数,

详见:http://appium.io/docs/en/writing-running-appium/caps/(注意这个参数是被测应用在使用chromedriver的时候,必须要加的)
否则在执行webdriver.Remote的时候,会报错 Error: EPIPE: broken pipe

<pre>Error: EPIPE: broken pipe, write<br> &nbsp; &nbsp;at Socket._write (internal/net.js:58:25)<br> &nbsp; &nbsp;at doWrite (_stream_writable.js:415:12)<br> &nbsp; &nbsp;at writeOrBuffer (_stream_writable.js:399:5)<br> &nbsp; &nbsp;at Socket.Writable.write (_stream_writable.js:299:11)<br> &nbsp; &nbsp;at Console.log (xxx\AppData\Roaming\npm\node_modules\appium\node_modules\_winston@3.2.1@winston\lib\winston\transports\console.js:79:23)<br> &nbsp; &nbsp;at Console._write (xxx\AppData\Roaming\npm\node_modules\appium\node_modules\_winston-transport@4.3.0@winston-transport\index.js:102:17)<br> &nbsp; &nbsp;at doWrite </pre>
 

### 实现Android设备多台蓝牙设备同时数据通信 为了使 Android 设备能够同时处理来自多个蓝牙设备的数据传输,需扩展 `BluetoothChatService` 的功能来支持多连接模式。通常情况下,该服务仅维持单一的连接状态。 当构建一个多连接的应用程序时,核心在于创建并管理多个线程以便于每一对 BluetoothSocket 都能独立工作[^1]。这意味着对于每一个新建立的连接都需要实例化一个新的 `ConnectedThread` 类用于读写操作: ```java private class ConnectedThread extends Thread { private final BluetoothSocket mmSocket; private final InputStream mmInStream; private final OutputStream mmOutStream; public ConnectedThread(BluetoothSocket socket) { mmSocket = socket; InputStream tmpIn = null; OutputStream tmpOut = null; try { tmpIn = socket.getInputStream(); tmpOut = socket.getOutputStream(); } catch (IOException e) { } mmInStream = tmpIn; mmOutStream = tmpOut; } } ``` 每当有新的蓝牙设备请求连接时,在主线程中启动一个新的 `ConnectedThread` 来负责这个特定连接上的所有输入/输出活动。这允许应用程序并发地监听和响应不同外设发送过来的信息而不互相干扰。 此外,考虑到资源管理和性能优化方面的需求,建议采用线程池技术而非无限制地增加线程数量。这样不仅可以提高系统的稳定性还可以更好地控制内存占用情况。 最后值得注意的是,由于 Android 系统本身对蓝牙协议栈的支持有限制,实际开发过程中可能遇到一些挑战比如配对过程中的权限问题或是某些型号手机上存在的兼容性难题等。因此测试阶段应该尽可能覆盖更多类型的终端以确保良好的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值