2014-10-11 1 views
1

Я подумываю написать небольшое приложение для Android, которое перехватывает принятые тексты и выталкивает их на компьютер с Windows, на который вы можете ответить. Однако я знаю, что вы не можете отправлять текстовые сообщения на Android, не являясь стандартным SMS-приложением, и я не хочу создавать весь текстовый клиент. Просто что-то, что перехватывает текст и отображает его в Windows, но использует SMS-сообщение по умолчанию приложение для отправки и получения. Это возможно?Перехват SMS-намерений (не по умолчанию)

+1

«Тем не менее, я знаю, что вы не можете отправлять текстовые сообщения на Android без использования SMS-приложения по умолчанию» - любое приложение с SEND_SMS может отправлять SMS-сообщение через «SmsManager». – CommonsWare

+0

Я думал, что отправка SMS без приложения по умолчанию запретит его отображать в приложении по умолчанию? – AllHailSeizure

+1

Большинство версий Android не сообщают ни о каких SMS-сообщениях SMS-сообщений, отправленных другими приложениями через 'SmsManager'. Кажется, я помню, что читал, что «SmsManager» теперь пишет стандартную исходящую версию на Android 4.4, но я, возможно, неправильно помню это. – CommonsWare

ответ

0

Для получения SMS сначала необходимо установить IntentFilter с наивысшим приоритетом. Нравится:

IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED"); 
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); 
registerReceiver(smsReceiver , filter); 

Где smsReceiver - это класс, расширяющий BroadcastReceiver. Внутри метода onReceive вы можете вызвать abortBroadcast(); который остановит трансляцию события «android.provider.Telephony.SMS_RECEIVED». Больше информации http://developer.android.com/reference/android/content/BroadcastReceiver.html.

 Смежные вопросы

  • Нет связанных вопросов^_^