我正在尝试使用Bluetooth LE发现设备,我按照此库中为 Xamarin 编写的方法进行操作,但检测到 0 个设备
包括在 android 中的必要清单。将扫描时间增加到 30 秒,但没有。在设备上启用蓝牙,版本 4.0
Asus_Z00ED 设备 (Android 6.0 - API 23)。在 Android 8.1 上使用目标创建的项目。试图在清单中切换目标 android 版本(8.0、9.0)但也没有检测到
检测不到位还有哪些其他原因?
public class Page6 : ContentPage
{
IBluetoothLE ble;
IAdapter adapter;
ObservableCollection<IDevice> deviceList;
Label label;
public Page6()
{
ble = CrossBluetoothLE.Current;
adapter = CrossBluetoothLE.Current.Adapter;
deviceList = new ObservableCollection<IDevice>();
label = new Label { Text = "Welcome to Xamarin.Forms!" };
var buttonList = new Button() { Text = "Devices List" };
buttonList.Clicked += ButtonList_Clicked;
Content = new StackLayout
{
Children = {
label,
buttonList,
}
};
}
private async void ButtonList_Clicked(object sender, EventArgs e)
{
deviceList.Clear();
adapter.ScanTimeout = 30000;
adapter.DeviceDiscovered += (s, a) =>
{
deviceList.Add(a.Device);
};
await adapter.StartScanningForDevicesAsync(); // сканирование
label.Text = deviceList.Count.ToString();
}
}
我找到了这个答案,您需要从清单(AndroidManifest.xml)中删除目标sdk平台,然后扫描仪才能成功运行。在清单中,它看起来像这样: