これはブロードキャスト受信者です。このコードはkitkatとjeallyBeanで動作しています。この中で、着信メッセージの通知を簡単に受け取ります。モバイルにメッセージが来たときに通知を表示します。マニフェストにタスクマネージャーからアプリケーション終了後、ラジオ受信機がロリポップで動作していません
public class IncomingSms extends BroadcastReceiver {
final SmsManager sms = SmsManager.getDefault();
Notification myNotication;
NotificationManager nm;
public void onReceive(Context context, Intent intent) {
nm = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
final Bundle bundle = intent.getExtras();
Intent startServiceIntent = new Intent(context, MainActivity.class);
try {
if (bundle != null) {
final Object[] pdusObj = (Object[]) bundle.get("pdus");
for (int i = 0; i < pdusObj.length; i++) {
SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
String phoneNumber = currentMessage.getDisplayOriginatingAddress();
String senderNum = phoneNumber;
String compnum=phoneNumber;
String message = currentMessage.getDisplayMessageBody();
Log.i("SmsReceiver", "senderNum: "+ senderNum + "; message: " + message);
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, "senderNum: "+ senderNum + ", message: " + message, duration);
toast.show();
if(senderNum.equals(compnum))
{
Toast.makeText(context,"Come in the loop",Toast.LENGTH_LONG).show();
Intent intent2 = new Intent(context,MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 1, intent2, 0);
Notification.Builder builder = new Notification.Builder(context);
builder.setAutoCancel(true);
builder.setTicker("this is ticker text");
builder.setContentTitle("WhatsApp Notification");
builder.setContentText("You have a new message");
builder.setSmallIcon(R.drawable.pretty_bullet);
builder.setContentIntent(pendingIntent);
builder.setOngoing(true);
builder.setSubText("This is subtext...");
builder.setNumber(100);
builder.build();
myNotication = builder.getNotification();
nm.notify(50, myNotication);
}
}
}
} catch (Exception e) {
Log.e("SmsReceiver", "Exception smsReceiver" +e);
}
}
}
私は、アプリケーションがタスクマネージャから閉じたときにこれが動作していない
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="ANDROID.PERMISSION.WRITE_SETTINGS"/>
<receiver android:name=".IncomingSms">
<intent-filter
android:priority="1">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
を宣言する。しかし、それはjallybean上で動作します。申請が開かれているか閉じられているかを通知したい。
[あなたは、このリンクをチェックすることができます。それは同じ問題を抱えており、あなたに役立つかもしれない答えです。](http://stackoverflow.com/questions/39160320/broadcast-receiver-not-working-when-application-close-from-task-manager-in-lolli) – Tashidev