Для того, чтобы сделать это, вам нужно сделать что-то вдоль этих линий:
- Добавить необходимые права для манифеста. Возможно
RECEIVE_SMS
- Создание SMS
BroadcastReceiver
- обрабатывать входящие SMS внутри вашего приемника
- Выберите потребить сообщение (если применимо только к вашему приложению), или пусть приложение запас смс забрать его.
Ни одно из следующего кода не проверяется, более отправная точка:
Manifest
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<receiver android:name=".YOURSMSReceiver">
<intent-filter android:priority="SOMENUMBER">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
YOURSMSReceiver
public class YOURSMSReceiver extends BroadcastReceiver
{
@Override
public void onReceiver(Context context, Intent intent)
{
boolean bConsumeSms = false; // flag to consume the sms so stock app doesn't pick it up
String data = "";
if(intent.getAction().equals(android.provider.Telephony.SMS_RECEIVED))
{
Bundle bundlePdus = intent.getExtras();
Object[] pdus = (Object[])bundlePdus.get("pdus");
SmsMessage messages = SmsMessage.createFromPdu((byte[])pdus[0]);
if(messages.getOriginatingAddress() == YOURCELLNUMBER)
{
// do something with the content.
// held in: messages.getMessageBody()
data = messages.getMessageBody(); // your custom content
// consume this sms
bCOnsume = true;
}
// in order to consume the message, we have to use abortBroadcast(). But only if we've
// processed it first. If not, then the stock app, should be allowed to pick it up
if(bConsume)
{
abortBroadcast();
}
}
}
}
Как я уже говорил, его полностью непроверенный, но в теории все y ou потребность есть. Вам также придется обрабатывать несколько сообщений, что я не беспокоил, исходя из размера массива pdu. Удачи!
Редактировать Компания CommonsWare указала, что 4.4 ОС Android обеспечивает все SMS независимо от них. Я не знал об этом.
Когда вы сможете прочитать смс, то вы можете отфильтровать его по номеру телефона или тому, что захочет. Просто сначала получите смс ... http://andro-source.blogspot.com/2013/02/sms-reading-in-android-programmatically.html – Daler
Обратите внимание, что то, что вы хотите, невозможно с Android 4.4, если как * все * SMS-сообщения доставляются выбранным пользователем клиентом SMS по умолчанию. – CommonsWare
@Daler Спасибо за ссылку –