rmc*_*c47 52 android bluetooth
有没有办法使用Android SDK以编程方式连接到已配对的蓝牙设备?
换句话说:我可以进入设置 - >无线和网络 - >蓝牙设置,然后点击设备(列为"已配对但未连接"),此时它将连接.我希望能够以编程方式执行此操作,但是没有办法实现此目的.
我看到了创建RFCOMM套接字的选项,对于SPP设备,我假设它也会做连接部分,但是对于A2DP设备,实际数据传输将由OS处理,而不是由我的应用程序,我认为这不适用?
kco*_*ock 48
好吧,因为这让我发疯,我做了一些挖掘源代码,我发现100%可靠(至少在我的Nexus 4,Android 4.3)解决方案连接到配对的A2DP设备(如耳机)或蓝牙音频设备).我已经发布了一个完整的示例项目(可以使用Android Studio轻松构建),您可以在Github上找到它.
基本上,您需要做的是:
BluetoothAdapteradapter.getProfileProxy (context, listener, BluetoothProfile.A2DP);
在哪里listener是一个ServiceListener将BluetoothProfile在其onServiceConnected()回调中接收a (可以强制转换为BluetoothA2dp实例)
connect(BluetoothDevice)代理上的方法:Method connect = BluetoothA2dp.class.getDeclaredMethod("connect", BluetoothDevice.class);
BluetoothDevice:String deviceName = "My_Device_Name";
BluetoothDevice result = null;
Set<BluetoothDevice> devices = adapter.getBondedDevices();
if (devices != null) {
for (BluetoothDevice device : devices) {
if (deviceName.equals(device.getName())) {
result = device;
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
connect()方法:connect.invoke(proxy, result);
至少对我而言,这导致设备立即连接.
我使用此处的代码作为应用程序中此功能的起点:http ://developer.android.com/guide/topics/wireless/bluetooth.html#ConnectingDevices
设备配对后,应用程序就可以通过编程方式将两个设备连接在一起。
| 归档时间: |
|
| 查看次数: |
81090 次 |
| 最近记录: |