我尝试使用 Bluetooth LE 检测设备,按照 Xamarin 库中的说明执行此操作,但设备发现 0
包括 android 中的必要声明。将扫描时间增加到 30 秒,但没有任何效果。支持蓝牙,版本 4.0
Asus_Z00ED 设备(Android 6.0 - API 23)。该项目是在 Android 8.1 上使用目标创建的。尝试在 list 中切换目标版本的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 中的 uses-sdk 标签中删除 android:targetSdkVersion,一切正常。我们项目的完整标签:
<uses-sdk android:minSdkVersion="15" />
关于xamarin - 蓝牙 LE 未检测到设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52790271/