gpt4 book ai didi

android - 从 Android 上的 Xamarin 连接到配对的蓝牙设备

转载 作者:IT王子 更新时间:2023-10-28 23:33:07 26 4
gpt4 key购买 nike

当应用程序通过 A2DP 或免提配置文件启动时,我们需要我们的应用程序能够自动连接到配对的蓝牙设备。

我们正在为 Android 平台开发 Xamarin (monodroid)。

我发现了这个 stackoverflow 问题:Programmatically connect to paired Bluetooth device

但它与实现此目的的本地方式有关(请参阅 kcoppock 的回答)。我想知道是否有办法通过 Xamarin 实现这一目标。我们可以连接到 SPP 端点,因为它是基于 RFCOMM 的连接,但我们需要它和音频连接,因此我们正在寻找一种连接到 A2DP 的方法。

更新 1:

我们尝试使用 CreateInsecureRfcommSocketToServiceRecord 方法进行连接,如下所示:


mmSocket = device.CreateInsecureRfcommSocketToServiceRecord(0000110A-0000-1000-8000-00805F9B34FB);
mmSocket.Connect();

在调用 Connect 时,我们收到一个错误:

读取失败,socket可能关闭或超时,读取ret:-1

堆栈跟踪开始于:

Java.IO.IOException at Android.Runtime.JNIEnv.CallVoidMethod (IntPtr jobject, IntPtr jmethod) [0x00062] in/Users/buil…

更新 2:

顺便说一句,当我们尝试使用 the approach by kcoppock 通过 native java 测试应用程序进行连接时,连接代码似乎可以正常工作,尽管该设备没有作为 A2DP 耳机连接。

我们见过的唯一能够做到这一点的编程方式this Google Play app ,这证明是可能的。

最佳答案

请记住,Xamarin 绑定(bind)到 native api,所以不要担心“与 native 方式有关”的东西;)根据您引用的 anwser,我编写并测试了下面的代码。我希望它会帮助你。

class btListener : Java.Lang.Object, IBluetoothProfileServiceListener
{
public void OnServiceConnected([GeneratedEnum] ProfileType profile, IBluetoothProfile proxy)
{
String deviceName = "JABRA WAVE+";

BluetoothDevice result = null;

var devices = BluetoothAdapter.DefaultAdapter.BondedDevices;
if (devices != null)
{
foreach (BluetoothDevice device in devices)
{
if (deviceName == device.Name)
{
result = device;
break;
}
}
}
var connect = Java.Lang.Class.FromType(typeof(BluetoothA2dp)).GetDeclaredMethod("connect", Java.Lang.Class.FromType(typeof(BluetoothDevice)));
connect.Invoke((Java.Lang.Object)proxy, result);
}

public void OnServiceDisconnected([GeneratedEnum] ProfileType profile)
{
}
}

以下代码,例如OnCreate 函数:

btListener btReceiver = new btListener();
BluetoothAdapter.DefaultAdapter.GetProfileProxy(this, btReceiver, ProfileType.A2dp);

刚刚看了日期..但无论如何我都会发布答案 - 也许它仍然会帮助某人

关于android - 从 Android 上的 Xamarin 连接到配对的蓝牙设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21761271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com