准备工作:
下载第三方库:
1、在xamrin.Form下载加载plug.ble
2、在Xamarin.Android下加载ble.net ble.net-android
调用接口并获取蓝牙的状态:
实例化对象:
public MainPageModel()
{
MyBLe = CrossBluetoothLE.Current;
Adapter = CrossBluetoothLE.Current.Adapter;
this.BleStatus= MyBLe.State.ToString();
MyBLe.StateChanged += MyBLe_StateChanged;
}
/// <summary>
/// 启动扫描
/// </summary>
public async void Scaner()
{
Adapter.ScanTimeout = 3000;
Adapter.ScanMode = ScanMode.LowPower;
Adapter.DeviceDiscovered += (s, a) =>
{
devic_list.Add( a.Device.Id);
Console.WriteLine("china:::" + a.Device.Id.ToString()+"->"+a.Device.Name);
idevices.Add(a.Device);
};
var c= Adapter.ConnectedDevices;
await Adapter.StartScanningForDevicesAsync();
}
注意事项:针对android 6.0以上版本需要服务位置权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
安装后赋予位置权限,并打开定位功能,否则会出现无法扫描出蓝牙设备。
以上是使用Nuget实现蓝牙的功能。
一下内容是使用system.android.Bluetooth;实现对蓝牙的开关。等基本操作
关键字
BluetoothAdapter(蓝牙适配器)、
BluetoothDevice(蓝牙设备)、
BluetoothSocket(蓝牙通讯)、
BroadcastReceiver (广播接收器)
IsEnabled;
BondedDevices;
打开蓝牙:
public bool OpenBluetooth()
{
bool status = myadapter.IsEnabled;
if (!status)
{
myadapter.Enable();
}
return myadapter.IsEnabled;
}