Bluetooth LE не обнаруживает устройства - PullRequest
0 голосов
/ 13 октября 2018

Я пытаюсь обнаружить устройства, используя Bluetooth LE , сделал, как написано в этой библиотеке для Xamarin, но устройства нашли 0

Необходимые манифесты в Android включены.Увеличено время сканирования до 30 секунд, но ничего.Bluetooth включен, версия 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();
        }
    }

enter image description here

Ответы [ 3 ]

0 голосов
/ 16 октября 2018

https://stackoverflow.com/a/44471774/3603237

Согласно этому ответу на собственный вопрос Android, необходимо включить службы определения местоположения для сканирования.Решил проблему для меня.

Кроме того, см. Эту статью для некоторых недокументированных изменений в Android 7: https://blog.classycode.com/undocumented-android-7-ble-behavior-changes-d1a9bd87d983

0 голосов
/ 28 октября 2018

Удалите android: targetSdkVersion из тега Использования-SDK в вашем AndroidManifest.xml, и все работает.Полный тег нашего проекта:

<uses-sdk android:minSdkVersion="15" />
0 голосов
/ 15 октября 2018

Как сказал Эмиль, вы должны добавить явный запрос на разрешение.Пожалуйста, посмотрите на следующую ссылку:

https://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/permissions?tabs=vswin

...