当应用程序通过A2DP或免提配置文件启动时,我们需要我们的应用程序能够自动连接到配对的蓝牙设备。从Android上的Xamarin连接到配对的蓝牙设备
我们正在为Xamarin(monodroid),Android平台进行工作。
我发现这个计算器的问题:Programmatically connect to paired Bluetooth device
但它涉及到实现这一目标(见kcoppock答案)的原生方式。我想知道是否有办法通过Xamarin来实现这一点。我们可以连接到SPP端点,因为它是一个基于RFCOMM的连接,但我们需要这个连接和音频连接,所以我们想要连接到A2DP。
更新1:
我们已经尝试使用CreateInsecureRfcommSocketToServiceRecord
法这样的连接:
mmSocket = device.CreateInsecureRfcommSocketToServiceRecord(0000110A-0000-1000-8000-00805F9B34FB); mmSocket.Connect();
在一个呼叫连接,我们得到了一个错误:
read failed, socket might closed or timeout, read ret: -1
Stack trace begi
Java.IO.IOException at Android.Runtime.JNIEnv.CallVoidMethod (IntPtr jobject, IntPtr jmethod) [0x00062] in /Users/buil…
更新2:与NS
顺便说一句,whene我们尝试通过使用the approach by kcoppock本地Java测试应用程序进行连接,连接代码似乎没有一个错误的工作,虽然该设备未作为A2DP耳机连接。
我们看到能够做到的唯一编程方式是this Google Play app,这证明这是可能的。
其中一个原因可能是程序的另一部分保持打开连接(提取器)应该读取的同一文件? – SeahawksRdaBest
在连接点上,我们只通过RFComm获得SPP连接,但我们的主要任务是我们的Android设备同时通过SSP和A2DP连接。如果我们通过代码连接到SPP并通过Android设置手动连接到A2DP,则一切正常,所以这证明技术上我们可以同时连接两个配置文件。 –
这可能是一个带宽问题。检查您的特定设备的波特率以及您在音频中的流量。显然,如果你接近极限,rfcomm频道将失败。 – SeahawksRdaBest