Проверка подключений (Bluetooth и к Сети)

309
08 января 2017, 17:11

Задача: нужно проверить при запуске, подключено ли приложение к Bluetooth а, также к сети Интернет.

Если что-нибудь из озвученного отваливается в течение работы или пользователь вырубает принудительно, приложение выдает сообщение и прекращает алгоритм работы. Например, оно не будет ломиться на сервак, пока не получит доступ к сети. Или (что естественно) не будет искать устройства, но если блутуз заработает, то автоматически его продолжит.

Подскажите пожалуйста, что мне нужно почитать и какие методы в своем проекте лучше использовать?

Пока научился лишь проверять подключение. А вот как выявить внезапное отключение либо потерю сети, и подождать в реальном времени, пока оно появится, пока не знаю. Как обратиться к поиску - тоже.

Answer 1

Код для проверки, есть ли соединение с интернетом, стандартный:

if (connectivityManager.getActiveNetworkInfo() != null &&
        connectivityManager.getActiveNetworkInfo().isConnected() &&
        (Build.VERSION.SDK_INT < Build.VERSION_CODES.M
                || !powerManager.isDeviceIdleMode()
                || powerManager.isIgnoringBatteryOptimizations()))
{
    // do something
}

Но нужно понимать, что эта проверка покажет только "техническую возможность". Гарантий, что это подключение позволит связаться с каким-то определенным сервером, нет, поэтому, если необходимо проверять соединение с сервером, а не с "интернетом вообще", то эту проверку нужно продумать и реализовать отдельно.

С Bluetooth все еще хуже, потому что по Bluetooth подключаются разнообразные по функционалу устройства. Подключиться "к Bluetooth" в общем случае невозможно. Вероятно, вам хватит списка "спаренных" устройств. Если нет - уточняйте задачу.

BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices();
READ ALSO
Запуск повторяющейся сигнализации

Запуск повторяющейся сигнализации

Есть Service в приложении, который запускается при нажатии определённой кнопки (либо при запуске устройства через BroadcastReceiver)

288
Получить ID из View

Получить ID из View

Требуется получить ID объекта в виде String из объекта View

365
Получение данных по сети в разработке под Android

Получение данных по сети в разработке под Android

Всем доброго утра! Проблема заключается в выборе способа: мне требуется забирать некоторый JSON, который отдается на API сервера (Nodejs по некоторому...

406
Рекурсивный запрос по протоколу [требует правки]

Рекурсивный запрос по протоколу [требует правки]

Нужно создать рекурсивный запрос по UDP/TCP протоколуКто может подсказать, как это правильно реализовать?

326