Как прочитать входящее сообщение с помощью сервиса в фоновом режиме в android?
Я разрабатываю приложение для android, в котором я хочу прочитать входящее сообщение, не зная пользователя.Я хочу всегда запускать проверку входящих сообщений в фоновом режиме.Если новое сообщение получено, значит, я хочу прочитать содержимое сообщения, и это сообщение содержит некоторые слова (пароль) означает, что я хочу активировать приложение
Пожалуйста, объясните мне, как это сделать с примерами кода, потому что я новичок в Android
1 ответов
взгляните на BroadCastReceivers вы должны реализовать и зарегистрировать приемник для android.provider.Telephony.SMS_RECEIVED
вот фрагмент кода, который позволяет читать сообщения по мере их поступления.
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;
public class SMSReceiver extends BroadcastReceiver
{
public void onReceive(Context context, Intent intent)
{
Bundle myBundle = intent.getExtras();
SmsMessage [] messages = null;
String strMessage = "";
if (myBundle != null)
{
Object [] pdus = (Object[]) myBundle.get("pdus");
messages = new SmsMessage[pdus.length];
for (int i = 0; i < messages.length; i++)
{
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
strMessage += "SMS From: " + messages[i].getOriginatingAddress();
strMessage += " : ";
strMessage += messages[i].getMessageBody();
strMessage += "\n";
}
Toast.makeText(context, strMessage, Toast.LENGTH_SHORT).show();
}
}
}
и вот что вы должны добавить в ваш AndroidManifest.xml-файл:
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<receiver android:name=".SMSReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>