Как создать службу уведомлений для входящего текста?

Я новичок в android.. И я совершенно смущен, читая все SOQ, чтобы решить проблему создания службы уведомлений для входящих текстовых предупреждений. Могу ли вы, пожалуйста, помогите мне в этом, объяснив шаги, как создать фоновое обслуживание с конкретным временем, например, 5 минут, и эта служба предназначена для уведомления входящего текста пользователя. Большое спасибо.

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();
 }
 }
 }

и в файле манифеста я написал,

<receiver android:name=".SMSReceiver">
<intent-filter> 
 <action android:name="android.provider.Telephony.SMS_RECEIVED"> 
</action></intent-filter> 
</receiver>
1 ответ

Вы можете использовать NotificationManager для создания уведомлений. вместо этого Тост внутри вашего Receiver, используйте Notification. См. Пример кода ниже.

NotificationManager notificationManager1= (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

Intent i=new Intent(context,TragetActivity.class);// TargetActivity is opened when you click on the notification.
PendingIntent pi=PendingIntent.getActivity(context, 0, i, 0);

// Build notification
// Actions are just fake
Notification noti2=new Notification(R.drawable.icon2, "New SMS from " + "Nizam", System.currentTimeMillis());
noti2.setLatestEventInfo(context, "SMS", "Hii", pi);
noti2.flags = Notification.FLAG_AUTO_CANCEL;
//Show notification
notificationManager1.notify(1, noti2);

licensed under cc by-sa 3.0 with attribution.