SMS-шлюз, как запрограммировать приложение для Android

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

Также должна быть функция обратного вызова, куда я буду выкладывать информацию о сообщении, что именно с ним сделал андроид.

Сначала я подумал создать службу и провести опрос через Wi-Fi на веб-сайте, но, ссылаясь на веб-сайт "http://www.androidguys.com/2009/09/09/diamonds-are-forever-services-are-not /" невозможно создать службу, которая будет работать вечно.

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

Спасибо.

Шафкат


person shafqat    schedule 01.12.2010    source источник


Ответы (3)


Для отправки смс-сообщений: http://developer.android.com/reference/android/telephony/SmsManager.html

Для проверки/опроса новых сообщений, вероятно, лучше всего использовать push-сообщения. Начиная с версии 2.2 это можно сделать с помощью обмена сообщениями из облака на устройство: http://android-developers.blogspot.com/2010/05/android-cloud-to-device-messaging.html и http://blog.boxedice.com/2010/07.10/android-push-notifications-tutorial/

Это должно работать в фоновом режиме, так же, как gmail проверяет его почту (например)

person Barryvdh    schedule 01.12.2010
comment
У меня есть устройство, которое не будет обновлено до версии 2.2, поэтому мне нужно создать приложение для версии 2.1. - person shafqat; 01.12.2010
comment
Существуют альтернативы C2DM; как tokudu.com/2010/how-to-implement- push-уведомления для Android - person Barryvdh; 02.12.2010

Вместо опроса или длительных запросов вы должны использовать GCM (Google Cloud Messaging) ... например, что делает это приложение/библиотека: http://netbizltd.com/wp/budget-sms-gateway/

person CrazyChris    schedule 27.03.2015

Как рекомендуется в этом посте, вы должны использовать AlarmManager для обработки периодических опросов.

person Nick    schedule 01.12.2010
comment
Могу ли я также использовать AlarmManager для периодического опроса в 5 секунд? - person shafqat; 01.12.2010
comment
и как насчет того, чтобы будильник не запускался, когда процессор находится в режиме ожидания? - person shafqat; 01.12.2010
comment
(Но просыпаться и опрашивать каждые 5 минут дорого для батареи..) - person Barryvdh; 02.12.2010
comment
это не проблема, устройство всегда будет подключено к зарядному устройству. - person shafqat; 02.12.2010
comment
Если он всегда подключен, ваша основная деятельность может поддерживать WakeLock, чтобы он не спал. Просто убедитесь, что активность активна, когда вы ничего не делаете с телефоном, и он не будет спать. Конечно, если вы сохраняете действие на переднем плане, то это действие может поддерживать работу Службы на неопределенный срок, так что это еще один вариант. Это зависит от того, собираетесь ли вы делать другие вещи с телефоном. - person Nick; 02.12.2010