Vincent
Vincent

Reputation: 6188

SmsManager succes

I'm using the following code to send an sms. But this seems to not generate an exception when an sms is not send. For instance when there's not enough money left to send it, I still go to smsSucces(); Does anyone kow a way to solve this for knowing sure it has been sent?

    private boolean composeSms(String telefoonnr, String boodschap) {
    if(telefoonnr.equals("") || boodschap.equals(""))   {
        smsFail();
        return false;
    }
    try {
    SmsManager sm =  SmsManager.getDefault();
    //PendingIntent pi = PendingIntent.getActivity(this, 0, new Intent(this, SmsActivity.class), 0);   
    sm.sendTextMessage(telefoonnr, null, boodschap, null, null);
    DataClass dc = (DataClass) getApplicationContext();
    dc.setBoolean(DataClass.ACTIVATED_SMS, true);
    dc.setString(DataClass.SMS_NUMBER, telefoonnr);
    Log.d("temp","sms send succesfully");
    smsSucces();
    return true;
    }
    catch (Exception e) {
        e.printStackTrace();
        smsFail();
        return false;
    }


}

Upvotes: 1

Views: 1927

Answers (2)

Sujit
Sujit

Reputation: 10622

Hi you can use Broadcast for SMS delivery report `

Here is the code for this

// SMS delivered pending intent

PendingIntent deliveredIntent = PendingIntent.getBroadcast(this, 0, new Intent(DELIVERED_ACTION), 0);

// SMS sent receiver

registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
    Log.d(TAG, "SMS sent intent received.");
}
}, new IntentFilter(SENT_ACTION));

// SMS delivered receiver

registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
    Log.d(TAG, "SMS delivered intent received.");
}
}, new IntentFilter(DELIVERED_ACTION));

Upvotes: 1

Enadeag
Enadeag

Reputation: 178

Not sure to be honest. But maybe you can find the answer here: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/os/SmsMessagingDemo.html

Upvotes: 0

Related Questions