0
先生,我真的不知道如何讓我的代碼工作。它只是無法啓動警報。它只是開始分配的活動並跳過報警部分。我究竟做錯了什麼。感謝提前幫助使用sms關鍵字爲android開始鬧鐘
public class EAlarmReceiver extends BroadcastReceiver {
public static String sender;
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Bundle bundle = intent.getExtras();
Object[] pdusObj = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[pdusObj.length];
for (int i = 0; i<pdusObj.length; i++)
{
messages[i] = SmsMessage.createFromPdu ((byte[])
pdusObj[i]);
sender = messages[i].getOriginatingAddress();
}
for (SmsMessage msg : messages) {
if (msg.getMessageBody().contains("firealert")) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.SECOND, 0);
Intent i = new Intent(context, ReceiverInterface.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context,
12345, i, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am =
(AlarmManager)context.getSystemService(Activity.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
pendingIntent);
}//end if
}//end for
}// end onreceive
哦,我看到了,謝謝 –
我試圖把第二個改成「10」,但仍然沒有報警。這是爲什麼?我應該更改android清單中的任何內容嗎? –
我傳遞給PendingIntent.getActivity()的意圖應該指定FLAG_ACTIVITY_NEW_TASK,如API文檔中所述:http://developer.android.com/reference/android/app/PendingIntent.html#getActivity(android.content。上下文,int,android.content.Intent,int)。嘗試添加該標誌,看看它是否被調用。 – Jorge