Yves B.
- Forum-Beiträge: 21
03.06.2011, 16:13:56 via Website
03.06.2011 16:13:56 via Website
Hallo zusammen,
ich habe eine Klasse sms_receiver welche von BroadcastReceiver erbt. Diese Klasse wird in meiner App aufgerufen, sobald eine SMS eingeht. In dieser Klasse zerlege ich die SMS in ihre Bestandteile und schreibe Absender und den SMS-Text in Variablen. Diese möchte ich anschliessend an einen Intent anheften und eine andere Klasse im übergeordneten Package aufrufen. Diese Klasse sollte anschliessend GPS-Koordinaten auf einer MapView anzeigen. Die Koordinaten stehen in der SMS-Nachricht.
Das Problem ist, dass mir Eclipse anzeigt, dass der Konstruktor des Intents nicht für den Typ sms_receiver gemacht ist. Hat jemand von euch eine Idee wo das Problem ist? Habe schon unzählige Intents geschrieben und verstehe nicht in wie fern sich dieser hier unterscheidet..
[code]
public class sms_receiver extends BroadcastReceiver {
final static String LOG_TAG = "Deja-vu";
private String sms;
private String absender;
private SmsMessage[] messages;
@Override
// Wenn eine SMS eingeht während die App läuft
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle != null)
{
// Schreibe SMS in PDU-Array
Object[] pdus = (Object[]) bundle.get("pdus");
messages = new SmsMessage[pdus.length];
// Schleife über alle Array-Elemente
for (int i = 0; i < messages.length; i++)
{
// Erstelle Nachricht anhand der PDU-Formatierung
messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
// Hole Absender aus Nachrichten-Array
absender = messages[i].getOriginatingAddress();
// Hole Text aus Nachrichten-Array
sms = messages[i].getMessageBody();
// Log-Ausgabe
Log.d(LOG_TAG, "SMS-Absender: " + absender);
Log.d(LOG_TAG, "SMS-Nachricht:" + sms);
}
}
// MapActivity zum speichern aufrufen und Daten übergeben
Intent i = new Intent(this, map.class);
i.putExtra("absender", absender);
i.putExtra("text", sms);
startActivity(i);
}
}
[/code]
Vielen Dank
Yves
ich habe eine Klasse sms_receiver welche von BroadcastReceiver erbt. Diese Klasse wird in meiner App aufgerufen, sobald eine SMS eingeht. In dieser Klasse zerlege ich die SMS in ihre Bestandteile und schreibe Absender und den SMS-Text in Variablen. Diese möchte ich anschliessend an einen Intent anheften und eine andere Klasse im übergeordneten Package aufrufen. Diese Klasse sollte anschliessend GPS-Koordinaten auf einer MapView anzeigen. Die Koordinaten stehen in der SMS-Nachricht.
Das Problem ist, dass mir Eclipse anzeigt, dass der Konstruktor des Intents nicht für den Typ sms_receiver gemacht ist. Hat jemand von euch eine Idee wo das Problem ist? Habe schon unzählige Intents geschrieben und verstehe nicht in wie fern sich dieser hier unterscheidet..
[code]
public class sms_receiver extends BroadcastReceiver {
final static String LOG_TAG = "Deja-vu";
private String sms;
private String absender;
private SmsMessage[] messages;
@Override
// Wenn eine SMS eingeht während die App läuft
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle != null)
{
// Schreibe SMS in PDU-Array
Object[] pdus = (Object[]) bundle.get("pdus");
messages = new SmsMessage[pdus.length];
// Schleife über alle Array-Elemente
for (int i = 0; i < messages.length; i++)
{
// Erstelle Nachricht anhand der PDU-Formatierung
messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
// Hole Absender aus Nachrichten-Array
absender = messages[i].getOriginatingAddress();
// Hole Text aus Nachrichten-Array
sms = messages[i].getMessageBody();
// Log-Ausgabe
Log.d(LOG_TAG, "SMS-Absender: " + absender);
Log.d(LOG_TAG, "SMS-Nachricht:" + sms);
}
}
// MapActivity zum speichern aufrufen und Daten übergeben
Intent i = new Intent(this, map.class);
i.putExtra("absender", absender);
i.putExtra("text", sms);
startActivity(i);
}
}
[/code]
Vielen Dank
Yves
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.