Как узнать, является ли пользователь приложения автономным приложением для Android?

В настоящее время я занимаюсь разработкой приложения для бронирования такси.
Сейчас я работаю над приложением драйвера.
Теперь моя задача состоит в том, чтобы я хотел отключить его от сети и подключить к сети, когда Интернет отключается или отключается.

В моей базе данных у меня есть столбец is_online, значение которого равно 1, когда он онлайн, и 0, когда он оффлайн.

Хорошо, теперь я знаю, как сделать его онлайн, но как сделать его оффлайн? если интернет отключился! Как я могу обновить значение в дБ. осталось 1
никогда не идет к 0;

В настоящее время я использую Broadcast Receiver, который уведомляет меня, когда интернет отключен или подключен.

<?PHP
require_once 'include/DB_Settings_Functions.php';
$db = new DB_Functions();

// json response array
$response = array("error" => FALSE);

if(isset($_POST['driver_id'])&&isset($_POST['status']))
{
$driver_id= $_POST['driver_id'];
$status= $_POST['status'];$user = $db->makeOnline($driver_id,$status);
}?>

Я слышал, что это можно решить с помощью mqtt любой рабочий пример? Может кто-нибудь мне помочь? я использую локальный хост-сервер wamp.

Редактировать:
Проще говоря, я хочу отправить значение на сервер до того, как соединение оборвется. Есть ли идеи, как это можно сделать с помощью mqtt?

0

Решение

Вы можете отправить запрос каждую минуту из мобильного приложения и сохранить его дату и время в базе данных. если пользователь в сети, это означает, что время последнего доступа будет обновляться каждые минуты в базе данных, а если пользователь не в сети, то время последнего времени доступа не будет обновляться в базе данных, поэтому вам просто нужно запустить SQL-запрос для того, чтобы отключить пользователя с последним временем доступа Терется потом 2 минус.

1

Другие решения

MQTT имеет функцию, которая называется Last Will and Testament (LWT), это сообщения, которые публикуются посредником по истечении времени ожидания клиентского соединения.

Это означает, что клиент может опубликовать сохраненное сообщение в уникальной теме, когда оно появится в сети (например, опубликовать 1 в / status). Затем он может настроить LWT для публикации 0 в той же теме, если соединение разрывается. Также следует вручную опубликовать 0, прежде чем вручную закрывать соединение, так как LWT срабатывает только в том случае, если соединение неожиданно обрывается.

Вы можете настроить время ожидания в соответствии с вашими потребностями.

1

По вопросам рекламы [email protected]