Daniel online
- Forum-Beiträge: 282
13.02.2012, 19:32:23 via Website
13.02.2012 19:32:23 via Website
Hallo,
ich will eine Sms aus einem Service heraus versenden. Das komische daran: Der Code klappt einwandfrei wenn ich ihn in einer Activity habe, allerdings wird aus dem Service heraus nichts versendet. Die Methode läuft einfach durch und es gibt auch keine Fehlermeldung.
Hier mal der Code:
An der Nummer kann es nicht liegen, das habe ich schon getestet. (Hardcoded String in Acivity geht, hier nicht).
Im Log sehe ich nur:
"sms send to "+smsNummber+" text:"+smsMsg (mit ausgefüllten variablen)
sms gesendet
Ich hoffe ihr könnt mir helfen
Daniel
ich will eine Sms aus einem Service heraus versenden. Das komische daran: Der Code klappt einwandfrei wenn ich ihn in einer Activity habe, allerdings wird aus dem Service heraus nichts versendet. Die Methode läuft einfach durch und es gibt auch keine Fehlermeldung.
Hier mal der Code:
1private void sendSmS() {
2 //Zu Beginn soll einmalig eine Sms verschickt werden. (Wenn aktiviert).
3
4
5 Log.d(TAG,"sms send to "+smsNummber+" text:"+smsMsg);
6 String SENT = "SMS_SENT";
7 String DELIVERED = "SMS_DELIVERED";
8
9 PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
10 new Intent(SENT), PendingIntent.FLAG_UPDATE_CURRENT);
11
12 PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
13 new Intent(DELIVERED), PendingIntent.FLAG_UPDATE_CURRENT);
14
15 //---when the SMS has been sent---
16 registerReceiver(new BroadcastReceiver(){
17 @Override
18 public void onReceive(Context arg0, Intent arg1) {
19 Log.d("sms","onReceive - sent");
20 switch (getResultCode())
21 {
22 case Activity.RESULT_OK:
23 Log.d("sms","SMS sent");
24 break;
25 case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
26 Log.d("sms","Generic failure");
27 break;
28 case SmsManager.RESULT_ERROR_NO_SERVICE:
29 Log.d("sms","No service");
30 break;
31 case SmsManager.RESULT_ERROR_NULL_PDU:
32 Log.d("sms","Null PDU");
33 break;
34 case SmsManager.RESULT_ERROR_RADIO_OFF:
35 Log.d("sms","Radio off");
36 break;
37 }
38 }
39 }, new IntentFilter(SENT));
40
41 //---when the SMS has been delivered---
42 registerReceiver(new BroadcastReceiver(){
43
44 @Override
45 public void onReceive(Context arg0, Intent arg1) {
46 Log.d("sms","onReceive - deliverd");
47 switch (getResultCode())
48 {
49 case Activity.RESULT_OK:
50 Log.d("sms","SMS delivered");
51 break;
52 case Activity.RESULT_CANCELED:
53 Log.d("sms","SMS not delivered");
54 break;
55 }
56 }
57 }, new IntentFilter(DELIVERED));
58
59 SmsManager sms = SmsManager.getDefault();
60 smsNummber = smsNummber.trim();
61 sms.sendTextMessage(smsNummber, null, smsMsg, sentPI, deliveredPI);
62 Log.d(TAG,"sms gesendet");
63
64 }
2 //Zu Beginn soll einmalig eine Sms verschickt werden. (Wenn aktiviert).
3
4
5 Log.d(TAG,"sms send to "+smsNummber+" text:"+smsMsg);
6 String SENT = "SMS_SENT";
7 String DELIVERED = "SMS_DELIVERED";
8
9 PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
10 new Intent(SENT), PendingIntent.FLAG_UPDATE_CURRENT);
11
12 PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
13 new Intent(DELIVERED), PendingIntent.FLAG_UPDATE_CURRENT);
14
15 //---when the SMS has been sent---
16 registerReceiver(new BroadcastReceiver(){
17 @Override
18 public void onReceive(Context arg0, Intent arg1) {
19 Log.d("sms","onReceive - sent");
20 switch (getResultCode())
21 {
22 case Activity.RESULT_OK:
23 Log.d("sms","SMS sent");
24 break;
25 case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
26 Log.d("sms","Generic failure");
27 break;
28 case SmsManager.RESULT_ERROR_NO_SERVICE:
29 Log.d("sms","No service");
30 break;
31 case SmsManager.RESULT_ERROR_NULL_PDU:
32 Log.d("sms","Null PDU");
33 break;
34 case SmsManager.RESULT_ERROR_RADIO_OFF:
35 Log.d("sms","Radio off");
36 break;
37 }
38 }
39 }, new IntentFilter(SENT));
40
41 //---when the SMS has been delivered---
42 registerReceiver(new BroadcastReceiver(){
43
44 @Override
45 public void onReceive(Context arg0, Intent arg1) {
46 Log.d("sms","onReceive - deliverd");
47 switch (getResultCode())
48 {
49 case Activity.RESULT_OK:
50 Log.d("sms","SMS delivered");
51 break;
52 case Activity.RESULT_CANCELED:
53 Log.d("sms","SMS not delivered");
54 break;
55 }
56 }
57 }, new IntentFilter(DELIVERED));
58
59 SmsManager sms = SmsManager.getDefault();
60 smsNummber = smsNummber.trim();
61 sms.sendTextMessage(smsNummber, null, smsMsg, sentPI, deliveredPI);
62 Log.d(TAG,"sms gesendet");
63
64 }
An der Nummer kann es nicht liegen, das habe ich schon getestet. (Hardcoded String in Acivity geht, hier nicht).
Im Log sehe ich nur:
"sms send to "+smsNummber+" text:"+smsMsg (mit ausgefüllten variablen)
sms gesendet
Ich hoffe ihr könnt mir helfen
Daniel
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.