По договоренности
Разработал на appinventor приложение, которое с заданной периодичностью обращается на сервер, получает в виде json-массива данные о очередном SMS-сообщении (id, номер телефона, текст), отправляет сообщение, отправляет на сервер в виде json статус отправки, получает следующее сообщение и так по кругу. В общем некий SMS-сервис по рассылке.
Все классно работает за исключением двух нюансов:
1 appinventor не умеет определять статус отправки смс-ки. Они могу по каким то причинам физически не уходить, а приложение отбило серверу, что все норм. Это не допустимая ситуация.
2 Приложение эпизодически приостанавливается. Я пробовал и через управление питанием давать приложению максимальные права (чтобы не отключалось), и на телефоне отключил уход в спящий режим. Все равно эпизодически приложение перестает опрашивать сервер (выгружается из памяти, засыпает или не знаю что там еще происходит с ним).
Хотелось бы этих минусов избежать.
ТЗ:
1 Приложение должно при загрузке сразу открывать рабочий экран без необходимости нажатия каких-либо элементов интерфейса и перехода по вкладкам, страницам и прочему
2 Приложение должно иметь элемент на экране, по нажатию на который открывается окно с возможностью указания 3-х конфигурационных переменных: 1 URL для получения AJAX-массива с данными о СМС, 2 URL для отправки AJAX-массива с результатами отправки СМС, 3 кол-во секунд между опросами сервера на предмет получения новой СМС
3 При получении данных о смс с сервера приложение должно получить и обработать массив, содержащий 3 ключа: id, phone, text. значение из phone и text используется для отправки смс, значение из id используется для формирования ajax-запроса с результатами отправки (пункт 2-2)
4 Уведомление о результатах отправки уходит на адрес в конфиг.переменной (пункт 2-2) только после фактически совершенной отправки или когда мы однозначно получили статус ошибки отправки. в теле ajax-запроса должно быть 2 параметра 'sms_id' = $id (айди, который мы получили вместе с телефоном и текстом, чтобы однозначно идентифицировать эту смс) и второй параметр 'status' = 'тут_статус'. при корректной отправке это будет 'ok', при не корректной или false, или описание ошибки, если его получится получить
5 приложение должно последовательно забирать смс с севера, не допуская запаралеливания (когда еще не отправилось одно смс, но уже полезли на сервер за следующим)
6 приложение должно работать при выключенном экране/с режимом энергосбережения (возможно в виде сервиса?)
7 приложение не должно быть источником утечки памяти или других ресурсов телефона (в разумных пределах, должно, при наличии заряда в батарее, корректно работать не менее 3-х дней без перезагрузок телефона и выгрузки/загрузки приложения из памяти телефона)
8 приложение должно однозначно определять статус отправки смс. Ключевым является недопущение отправки статуса, что смс ушло, но по факту был сбой отправки, и оно не ушло.
9 на экране отображать 1 телефон последний 2 текст последний 3 статус последний 4 секунд с момента отправки
чтобы я видел хоть что там происходит
10 общение с сервером происходит по https
Требований к дизайну никаких. Что быстрее получится, то и подойдет. Приложение для личного пользования.
Хотел бы, чтобы проект был разработан в Andoid Studio. Хотелось бы иметь возможность потом самостоятельно вносить небольшие правки в проект.
Приложение будет тестироваться и в последствии работать на Redmi Note 4x / Redmi 5A
P.S.
без конкретики в ответе сразу отказываю. задолбали боты ....