Измеритель уровня сигнала Bluetooth
Приложение, которое получает характеристики Bluetooth видимых устройств, расположенных рядом с нами.
Измеритель уровня сигнала Bluetooth Varies with device APK для Android Varies with device+
Версия | Varies with device для Android Varies with device+ |
Обновить | 2022-07-12 |
Устанавливает | 100.000++ |
Размер файла | 3.092.122 bytes |
Разрешения | просматривать разрешения |
Какие новости | — Исправлены ошибки в Android 10. — Обновите устройства Bluetooth с помощью обновления. — Отслеживайте уровень сигнала Bluetooth определенного устройства. — Получите мощность сигнала Bluetooth устройства, к которому вы подключены. — Скопируйте или поделитесь свойствами найденных устройств Bluetooth. |
История версий:
- 1. LATEST. Bluetooth Signal Meter Varies with device APK (2022-07-12, 3 MB)
- 2. Bluetooth Signal Meter 1.1.3 APK (2022-06-06, 3 MB)
- 3. Bluetooth signal strength meter 1.1.3 APK (2021-03-22, 3 MB)
- 4. Bluetooth signal strength meter 1.1.2 APK (2019-12-09, 6 MB)
- 5. Bluetooth signal strength meter 1.0.4 APK (2018-10-10, 4 MB)
Get bluetooth signal strength
I want to get the Bluetooth signal strength of an another device which connected to my phone, How can I get the Bluetooth signal strength? I tried to search a lot over google and did not find any answer. Does someone know how can I implement it? this is myActivity:
public class MainActivity extends Activity < @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); registerReceiver(receiver, new IntentFilter(BluetoothDevice.ACTION_FOUND)); >@Override public boolean onCreateOptionsMenu(Menu menu) < // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; >private final BroadcastReceiver receiver = new BroadcastReceiver() < @Override public void onReceive(Context context, Intent intent) < String action = intent.getAction(); if(BluetoothDevice.ACTION_FOUND.equals(action)) < int rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE); Toast.makeText(getApplicationContext()," RSSI: " + rssi + "dBm", Toast.LENGTH_SHORT).show(); >> >; >
i already saw it, however there is no any example of how to find the signal strength..maybe can you help me?
4 Answers 4
To get the signal you can check Bluetooth RSSI, you can read RSSI for connected devices, or perform a Bluetooth discovery to check the RSSI for any nearby devices.
Basically a Bluetooth discovery is a broadcast to all stations within range to respond back. As each devices responds back, Android fires off an ACTION_FOUND intent. Within this intent you can getExtra EXTRA_RSSI to obtain the RSSI.
Note that not all bluetooth hardware supports RSSI.
Also Related: Android IRC Office Hours Question About Android Bluetooth RSSI here is a Bluetooth Classic broadcast receiver example
private final BroadcastReceiver receiver = new BroadcastReceiver() < @Override public void onReceive(Context context, Intent intent) < String action = intent.getAction(); if(BluetoothDevice.ACTION_FOUND.equals(action)) < short rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE); Toast.makeText(getApplicationContext()," RSSI: " + rssi + "dBm", Toast.LENGTH_SHORT).show(); >> >;
thanks alot, i wrote this code, however when i paired with device it does not show me in Toast the signal strength, do you have another way? i also add my activity to the main thread
I think your code is ok, but you need to implement startDiscovery() in order to see results.
The true is that BluetoothDevice.EXTRA_RSSI only works for discovering devices, when you connect to one of them you are not able any more to get its RSSI.
Here I developed a very simple sample of an Activity that permit you see the RSSI of the devices near to you. You first need to add a TextView and a Button to your layout, then enable the Bluetooth Adapter and then just click the button.
package com.in2apps.rssi; import android.os.Bundle; import android.app.Activity; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class RSSIActivity extends Activity < private BluetoothAdapter BTAdapter = BluetoothAdapter.getDefaultAdapter(); @Override public void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_rssi); registerReceiver(receiver, new IntentFilter(BluetoothDevice.ACTION_FOUND)); Button boton = (Button) findViewById(R.id.button1); boton.setOnClickListener(new OnClickListener()< public void onClick(View v) < BTAdapter.startDiscovery(); >>); > @Override public boolean onCreateOptionsMenu(Menu menu) < getMenuInflater().inflate(R.menu.activity_rssi, menu); return true; >private final BroadcastReceiver receiver = new BroadcastReceiver() < @Override public void onReceive(Context context, Intent intent) < String action = intent.getAction(); if(BluetoothDevice.ACTION_FOUND.equals(action)) < int rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE); String name = intent.getStringExtra(BluetoothDevice.EXTRA_NAME); TextView rssi_msg = (TextView) findViewById(R.id.textView1); rssi_msg.setText(rssi_msg.getText() + name + " =>" + rssi + "dBm\n"); > > >; >
Уровень сигнала Bluetooth в Android
Я хотел получить значение RSSI для измерения того, насколько далеко устройство находится на трубке. проблема, с которой я столкнулся сейчас, заключается в том, продолжает ли значение RSSI даже после того, как устройства спарены, а также, может ли значение быть непосредственно использовано как короткая?
1 ответ
Значение RSSI будет значительно изменяться. Он пропорционален расстоянию, но на него влияют помехи, а также на таблицу питания 2 подключенных устройств (они могут уменьшить их мощность tx, если они близки). Тем не менее, RSSI по-прежнему будет ценить сближение устройств. Я предпочитал записывать данные RSSI, которые я получаю на другое (встроенное) устройство, и отправлять его обратно на Android, показывая его там. Мое встроенное устройство имеет четкий доступ к стеку Bluetooth и поэтому может получать более точные и более интенсивные показания RSSI. Ofc, получение RSSI другого устройства с Android также должно работать, но, вероятно, не очень хорошо (у вас слишком много слоев поверх фактического стека Bluetooth — linux bluez, а затем Android. ). У меня есть собственное графическое приложение для мониторинга Bluetooth RSSI на Android, вот 2 printscreens из моего приложения: Вы также можете посмотреть качество связи. это еще один полезный параметр (он восприимчив к дублированию сигнала). Вот научная статья по этому вопросу.
@PiyushMishra Обратите внимание, что я использовал изготовленное мной встроенное устройство, использующее чип CSR. Я наблюдал за сигналом Bluetooth, видимым этим устройством, а НЕ Android.
Хорошо, спасибо, я пытался, но получение уровня сигнала во время обнаружения только тогда, когда обнаружение устройства заканчивается, я не могу обнаружить сигналы rssi.
@PiyushMishra Я ничего не понял из вашего последнего комментария. Возможно, вам лучше связаться со мной по электронной почте ([email protected]), если у вас есть дополнительные вопросы.
Ещё вопросы
- 0 возвращается значение null при использовании $ location.search
- 0 трудности установки адаптивных учетных записей PayPal
- 0 Отображается ли id элемента управления aspx всегда одинаковым в исходном HTML-коде?
- 0 JQuery AJAX кнопку возврата, чтобы вернуться на страницу поиска с результатами поиска
- 1 подсчитать количество тегов в документе couchdb
- 1 Гравитация и много частиц
- 0 Установка стиля div на «none» или «block» с использованием javascript не работает в IE9, но работает в Chrome
- 0 Как отобразить количество отправленных значений переключателей, используя PHP [duplicate]
- 0 Возврат данных из mysql, где значение равно URI
- 1 Как сопоставить шаблон регулярного выражения только в одной строке?
- 0 PHP вставить массив входных данных, используя foreach
- 0 Просмотр файла, который выбран по типу входного файла с несколькими, используя Angularjs
- 0 N Queen с использованием C ++ и возврат с помощью динамического 2D-массива
- 0 AngularJs: всплывающее окно Datepicker не определено
- 0 Почему статическая переменная класса не может быть размещена в стеке?
- 1 Как отладить крюк Кордовы?
- 1 Как я могу убедиться, что все пакеты были получены и сохранены в массиве?
- 0 Ошибка компиляции при использовании шаблонов C ++
- 0 Удержание вектора уникального значения, установленного для выбора цвета с использованием C ++ и OpenGL
- 0 Отладка Visual studio 2008; разрыв, когда значения пишутся
- 0 Разрешение устройства и фиксированная ширина в пикселях
- 1 Android рухнул после обновления androidx biometric до 1.0.0-alpha04
- 0 Прокрутка страницы как параллакс
- 0 базовое разделение строк в php
- 1 Командная строка Java запускается из терминала на Mac. Появляется всплывающее окно Java на панели инструментов Mac, которое исчезает после выполнения заданий.
- 0 Как применить Emojis к списку директив Angularjs?
- 0 Apache conf для nginx conf, чтобы избежать CORS
- 1 Как: создать GridSplitter, который настраивает размер DockPanel (C #, WPF)
- 1 Почему мой список выходит из области видимости в сообщении WCF?
- 1 SQL-запрос возвращает данные, но ResultSet пуст
- 1 Запустите приложение Python Flask с модулем nginx
- 1 Ошибка говорит «настроить на использование jdk», хотя eclipse использует свой собственный компилятор. Что может быть причиной этого?
- 0 Попытка удалить вложенный объект в мангусте
- 0 Неожиданные результаты с преобразованием строк wchar_t и c_str
- 1 JavaScript тасует колоду, поэтому нет трех одинаковых костюмов
- 0 Является ли этот static_cast действительным / законным?
- 1 Блокировка на диспетчере
- 0 Угловое двустороннее приветствие привязки данных
- 0 Проверка формы jQuery — добавление новых ключевых слов на основе значения меню «Выбрать»
- 0 Как получить JSON через jQuery.ajax в Google App Engine
- 0 Я получаю ОШИБКУ 1452 (23000) в MySQL
- 0 получить src php для отображения в html
- 0 как сделать ссылку на изображение php открытой в новом окне
- 1 Как установить имя файла при загрузке файла? [Дубликат]
- 1 Кратчайший путь от города 0 до N (автомобильным / воздушным смешанным тарифом)
- 1 Разница в форматировании подписки на события
- 0 mysqldump ошибка 1728 при автоматическом выполнении резервного копирования
- 0 php pdo fetchAll возвращает ошибку SQL «нет активных полей» при выполнении хранимой процедуры
- 0 Как хранить данные структуры в массиве в C ++?
- 1 Intellij компилирует и собирает все классы (похоже, не использует кеш)