-1

“构造函数意图(EAlarmReceiver,Class)未定义”是什么意思?这是使用短信触发警报的正确方法,而且,即使在静音模式下,我如何仍然启动警报?提前致谢

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("alert")) {

            Calendar cal = Calendar.getInstance();
            cal.add(Calendar.SECOND, 1);

            Intent i = new Intent(EAlarmReceiver.this, 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
4

1 回答 1

1

使用context而不是EAlarmReceiver.this.

http://developer.android.com/reference/android/content/Intent.html#Intent(android.content.Context , java.lang.Class)

于 2012-11-25T18:44:17.580 回答