Ich bin mit der Broadcaster Klasse hören Nachrichten auf SMS mit diesem CodeWie verwendet man getApplicationContext in der BroadcastReceiver-Klasse?
package com.escortme.basic;
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 SMSReceiverActivity extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Parse the SMS.
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
if (bundle != null)
{
// Retrieve the SMS.
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++)
{
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
// In case of a particular App/Service.
//if(msgs[i].getOriginatingAddress().equals("+91XXX"))
//{
str += "SMS from " + msgs[i].getOriginatingAddress();
str += " :";
str += msgs[i].getMessageBody().toString();
str += "\n";
//}
}
// Display the SMS as Toast.
Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
Pol_ViewActivity appState = ((Pol_ViewActivity)getApplicationContext()); // ERROR
appState.move_map_to("33.786047","-59.187287");
}
}
}
und es im Manifest definiert ist wie
so<receiver
android:name="com.escortme.basic.SMSReceiverActivity"
android:enabled="true">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
Aber das Problem ist, es heißt „Die Methode getApplicationContext() ist undefiniert für den Typ SMSReceiverActivity ".
Weiß jemand, warum das passiert und wie man es beheben kann? Dank
innerhalb 'onReceive()', verwenden Sie einfach 'context.getApplicationContext()' –