Обнаружение другого находящегося поблизости устройства Android через Bluetooth

Хорошо, у меня здесь немного странный вопрос. Я работаю над игрой в Android, где я бы хотел, чтобы Android-телефоны обнаруживали присутствие друг друга.

Устройство, которое ищет других игроков, будет знать MAC-адреса bluetooth устройств других игроков (из игровой БД), однако устройства не будут спарены, и устройства не будут находиться в режиме обнаружения. Кроме того, будет доступно только несколько устройств, которые можно было бы найти – так что не сканировать через MAC-адреса.

Мне не нужно подключаться к устройствам, мне просто нужно ответить на один простой вопрос: это устройство с этим адресом mac рядом?

Допустимо иметь диалоги сопряжения на экране другого пользователя … Меня не волнует, каков результат их выбора … Мне просто нужно знать, есть ли их устройство.

Любая помощь будет принята с благодарностью!

Этот прецедент может хорошо подходить для недавно выпущенного API. См. Обзор разработчика Near Messages

Рядом имеет свое собственное разрешение во время выполнения, которое позволяет вам добавить BLUETOOTH_ADMIN или аналогично вашему манифесту. Он работает в iOS и Android, используя несколько технологий (Classic Bluetooth, BLE, ультразвук). Существует возможность использовать только ультразвуковой модем, который уменьшает диапазон до 5 футов.

Я включил частичный пример ниже, вы можете найти более полный образец на github

 // Call this when the user clicks "find players" or similar // In the ResultCallback you'll want to trigger the permission // dialog Nearby.Messages.getPermissionStatus(client) .setResultCallback(new ResultCallback<Status>() { public void onResult(Status status) { // Request Nearby runtime permission if missing // ... see github sample for details // If you already have the Nearby permission, // call publishAndSubscribe() } }); void publishAndSubscribe() { // You can put whatever you want in the message up to a modest // size limit (currently 100KB). Smaller will be faster, though. Message msg = "your device identifier/MAC/etc.".getBytes(); Nearby.Messages.publish(googleApiClient, msg) .setResultCallback(...); MessageListener listener = new MessageListener() { public void onFound(Message msg) { Log.i(TAG, "You found another device " + new String(msg)); } }); Nearby.Messages.subscribe(googleApiClient, listener) .setResultCallback(...); } 

Отказ от ответственности Я работаю над API-интерфейсом

Intereting Posts
Просмотр андроидного таймера (как и индикатор выполнения), обновление с цветами в холсте Можно ли установить ImageSize с помощью displayImage ()? Как изменить цвет прогресса индикатора выполнения в Android Как передать Bundle из фрагмента в фрагмент Хорошо ли понимать, что Activity похожа на ViewController в iOS? Кнопка предварительного одобрения на Android Установить правила proguard в android, можно ли просто шифровать код? Зачем нам нужен 4-й конструктор для Lollipop? Использование Youtube Intent для запуска видео с определенной начальной точки Функции Phonegap, не определенные в приложениях для сборки Phonegap – также pushNotifications не работают Изменение внутреннего времени симулятора Android Не удалось зарегистрировать SIP для Android (-9 IN_PROGRESS) Значения-21, значения-22 или значения-xx исчезли после Android Studio 1.0 Как WebView наследует цвета от текущей темы Android? Как контролировать ориентацию экрана Android-устройства