-1

「コンストラクターの意図(EAlarmReceiver、Class)は未定義です」とはどういう意味ですか? これは、SMS を使用してアラームをトリガーする適切な方法ですか?また、サイレント モードでもアラームを開始するにはどうすればよいですか? 前もって感謝します

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 に答える