Android Bluetooth: телефон не обнаружен - PullRequest
0 голосов
/ 03 июля 2018

Следуя инструкциям здесь , я создал приложение, которое находит близлежащие устройства Bluetooth и записывает их имя (если доступно), адрес и rssi в простой список.

Моя цель - отфильтровать результаты, чтобы найти все близлежащие телефоны, которые можно обнаружить, и их RSSI. Однако я не вижу свой iPhone в списке с другими соседними устройствами. Я знаю MAC-адрес своего телефона через настройки-> общие-> о, и в моем телефоне включен Bluetooth и его можно обнаружить .

Мой телефон находится примерно в футе от устройства, поэтому устройство должно быть в состоянии его поднять (он может обнаружить мой ноутбук через всю комнату). Как я могу найти свой телефон и другие телефоны?

Примечание: я занимаюсь разработкой на c # и Xamarin.Android для Android версии 6.0.1.

UPDATE: Это мой код, использованный для открытия-

static int REQUEST_ENABLE_BT = 1;
BluetoothBroadcastReceiver btReceiver;
BluetoothAdapter btAdapter = BluetoothAdapter.DefaultAdapter
//check status of bluetooth and enable if possible
...
//Discover bluetooth devices
btReceiver = new BluetoothBroadcastReceiver(this);
IntentFilter filter = new IntentFilter(BluetoothDevice.ActionFound);
RegisterReceiver(btReceiver, filter);
btAdapter.StartDiscovery();
//custom BroadcastReceiver to take ActionFound
public class BluetoothBroadcastReceiver : BroadcastReceiver
    {
        Activity activity;
        public BluetoothBroadcastReceiver(Activity activity)
        {
            this.activity = activity;
        }
        public override void OnReceive(Context context, Intent intent)
        {
            string action = intent.Action;
            if (BluetoothDevice.ActionFound.Equals(action))
            {
                //Discovery has found a device. Get info
                BluetoothDevice device = (Android.Bluetooth.BluetoothDevice)intent.GetParcelableExtra(BluetoothDevice.ExtraDevice);
                string deviceName = device.Name;
                string deviceAddress = device.Address;
                short RSSI = intent.GetShortExtra(BluetoothDevice.ExtraRssi,(short)0);
                string result = deviceName + " " + deviceAddress + " " + RSSI;
                newDevicesArrayAdapter.Add(result);
            }
        }
    }

Спасибо!

1 Ответ

0 голосов
/ 19 июля 2018

Код выше верен для обнаружения соседних устройств, которые находятся в режиме «обнаружения». Тем не менее, кажется, что телефоны на самом деле не могут быть обнаружены, пока они не перейдут на страницу настроек Bluetooth.

По крайней мере, не iPhone 7/8 или Samsung Galaxy S8.

...