Классическое обнаружение Bluetooth не дает мне никаких деталей, кроме MAC-адреса - PullRequest
0 голосов
/ 06 июня 2018

Мне нужно интегрировать Bluetooth Classic discovery и создать соединение между телефоном и устройством, но Обнаружение устройства не дает более подробную информацию в Receiver.My Code:

final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
            mBluetoothAdapter = bluetoothManager.getAdapter();
        }else {
                mBluetoothAdapter =BluetoothAdapter.getDefaultAdapter();
            }

        mBluetoothAdapter.startDiscovery();

 public static class Receiver extends BroadcastReceiver{
        @Override
        public void onReceive(Context context, Intent intent) {
            if (BluetoothDevice.ACTION_FOUND.equals(intent.getAction())) {
                BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                Gson gson=new Gson();
                LogUtils.errorLog("BC ","@@: "+gson.toJsonTree(device));
                //callback.onDeviceFound(device);
            } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(intent.getAction())) {
                context.unregisterReceiver(this);
                //  callback.onDiscoveryFinished();
            }
        }
    }

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Важной особенностью Bluetooth является MAC-адрес.Как только вы получите MAC-адрес, 1. вы можете выполнить сопряжение, подключить отправлять и получать данные

Пример:

BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(macAddress);
device.getName();
mSocket.connect(createRfcomSecureConnection);
0 голосов
/ 12 июня 2018

Код говорит, что у него есть BluetoothDevice экземпляр устройства, которое было недавно обнаружено.Теперь, следуя руководству разработчика BluetoothDevice , мы можем обнаружить, что этот класс содержит много информации, которую можно запросить с помощью его методов.

Например:

device.getAddress(), чтобыполучить машинный адрес устройства.

device.getName(), чтобы получить локальное имя устройства.

...