首页 > 解决方案 > 蓝牙 LE 不检测设备

问题描述

我尝试使用Bluetooth LE检测设备,按照此库中为 Xamarin 编写的操作,但设备发现 0

包括在 android 中的必要宣言。将扫描时间增加到 30 秒,但没有。启用蓝牙,4.0 版

Asus_Z00ED 设备 (Android 6.0 - API 23)。该项目是使用 Android 8.1 上的目标创建的。尝试在manifest中切换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();
        }
    }

在此处输入图像描述

标签: xamarinxamarin.formsbluetoothxamarin.androidbluetooth-lowenergy

解决方案


从您的 AndroidManifest.xml 中的 uses-sdk 标记中删除 android:targetSdkVersion 并且一切正常。我们项目的完整标签:

<uses-sdk android:minSdkVersion="15" />

推荐阅读