Как широковещательно или многоадресно передавать сообщения на устройства с диапазоном android через Bluetooth - PullRequest
0 голосов
/ 30 апреля 2020

Я хочу отправлять и получать сообщения между почти доступными android устройствами через Bluetooth. Ниже мой код, который находит новые и сопряженные устройства. Решение, которое я нашел до сих пор, состоит в соединении и создании сокетного соединения с каждым устройством для отправки и получения сообщений, но это не моя цель.

Моя цель:

Продолжать трансляцию периодически, независимо от доступных устройств.

Затем, когда любое количество устройств, доступных в диапазоне Bluetooth, должно получить сообщение.

если вышеописанное невозможно, то я хотел бы реализовать что-то вроде.

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

Я хочу достичь вышеупомянутой цели таким образом, чтобы взаимодействие пользователя ни в чем не требовало единственного, что требуется от пользователя - это включить Bluetooth.

Здесь мой код:

publi c, класс BluetoothHelper расширяет AppCompatActivity {

String TAG = "TEST";
BtHelper btHelper;
BtHelperClient btHelperClient;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_bluetooth_helper);

    btHelper  = BtHelper.getDefault();
    btHelperClient = BtHelperClient.from(BluetoothHelper.this);



btHelperClient.searchDevices(new top.wuhaojie.bthelper.OnSearchDeviceListener() {
    @Override
    public void onStartDiscovery() {
        Log.d(TAG, "onStartDiscovery()");
    }

    @Override
    public void onNewDeviceFounded(BluetoothDevice bluetoothDevice) {
        // Call when found a new device

        Log.d(TAG, "new device: " + bluetoothDevice.getName() + " " + bluetoothDevice.getAddress());
    }

    @Override
    public void onSearchCompleted(List<BluetoothDevice> bondedList, List<BluetoothDevice> newList) {
        // Call when the discovery process completed

        Log.d(TAG, "SearchCompleted: bondedList" + bondedList.toString());
        Log.d(TAG, "SearchCompleted: newList" + newList.toString());
    }

    @Override
    public void onError(Exception e) {
        e.printStackTrace();
    }
});


}

}

...