使用Xamarin创建Android蓝牙终端连接HC-06模块



我试图建立一个非常简单的应用程序,将允许我与HC-06芯片(简单的UART接口)从Android非常类似于BlueTerm或类似的东西目前在播放商店进行通信。Xamarin给出的标准蓝牙示例可以正常工作,但不能连接到蓝牙模块(简单地说无法连接到设备)。如果有人有任何想法,为什么它可能会这样做和/或如何修复它,这将是非常感激的。

HC05工作在masterslave模式下。HC05默认为从模式,如hc06。

我3年前在Xamarin博客上找到了这个链接:https://blog.xamarin.com/hello-mr-bond_agent_watch/

这个页面是关于用微控制器创建的某种智能手表,但是你可以下载一个名为NetduinoBT_AgentProto的android项目,它完全包含了连接到蓝牙SPP(串行端口配置文件)所需的所有东西。

添加App.cs类到你的项目。

和这个权限:

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

获取设备列表和名称:

var list = App.Current.BondedBluetoothDeviceNames;
var name  = App.Current.BondedBluetoothDeviceNames[yourIndex];`

用于连接设备:bool连接=应用程序当前。ConnectToBluetoothDevice(name, out message);

你可以建立' messagerreceived '事件来获取你的设备响应:

string mYourResult;
...
protected override void OnCreate (Bundle bundle)
{
    ...
    App.Current.MessageReceived += (object sender, App.MessageReceivedEventArgs e) => {
        RunOnUiThread( () => {
            mYourResult = e.MessageString;
        });
    };
    ...
}

用于发送字符串:App.Current.SendStringToBluetoothDevice("Your String");

根据我的经验,在一些基于Linux内核的系统中,

需要在字符串的末尾添加下一行。比如"rn"或"n"或"r"或"环境"。换行符

这是我用来测试HC-05和HC-06模块的应用程序。
‌BluetoothTerminal
这很简单。只需连接到你的设备并发送数据。接收到的数据也会显示。

最新更新