Created
August 23, 2013 09:27
Send SMS in android with delivery report
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//---sends an SMS message to another device--- | |
private void sendSMS(String phoneNumber, String message) | |
{ | |
String SENT = "SMS_SENT"; | |
String DELIVERED = "SMS_DELIVERED"; | |
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, | |
new Intent(SENT), 0); | |
PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, | |
new Intent(DELIVERED), 0); | |
//---when the SMS has been sent--- | |
registerReceiver(new BroadcastReceiver(){ | |
@Override | |
public void onReceive(Context arg0, Intent arg1) { | |
switch (getResultCode()) | |
{ | |
case Activity.RESULT_OK: | |
Toast.makeText(getBaseContext(), "SMS sent", | |
Toast.LENGTH_SHORT).show(); | |
break; | |
case SmsManager.RESULT_ERROR_GENERIC_FAILURE: | |
Toast.makeText(getBaseContext(), "Generic failure", | |
Toast.LENGTH_SHORT).show(); | |
break; | |
case SmsManager.RESULT_ERROR_NO_SERVICE: | |
Toast.makeText(getBaseContext(), "No service", | |
Toast.LENGTH_SHORT).show(); | |
break; | |
case SmsManager.RESULT_ERROR_NULL_PDU: | |
Toast.makeText(getBaseContext(), "Null PDU", | |
Toast.LENGTH_SHORT).show(); | |
break; | |
case SmsManager.RESULT_ERROR_RADIO_OFF: | |
Toast.makeText(getBaseContext(), "Radio off", | |
Toast.LENGTH_SHORT).show(); | |
break; | |
} | |
} | |
}, new IntentFilter(SENT)); | |
//---when the SMS has been delivered--- | |
registerReceiver(new BroadcastReceiver(){ | |
@Override | |
public void onReceive(Context arg0, Intent arg1) { | |
switch (getResultCode()) | |
{ | |
case Activity.RESULT_OK: | |
Toast.makeText(getBaseContext(), "SMS delivered", | |
Toast.LENGTH_SHORT).show(); | |
break; | |
case Activity.RESULT_CANCELED: | |
Toast.makeText(getBaseContext(), "SMS not delivered", | |
Toast.LENGTH_SHORT).show(); | |
break; | |
} | |
} | |
}, new IntentFilter(DELIVERED)); | |
SmsManager sms = SmsManager.getDefault(); | |
sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI); | |
} |
Please solve my problem
Why "Generics failure" error is coming while sending SMS through my ?
I got the same problem
Default messaging app works fine but when i am trying to send sms from my app everytime it gives error generic failure and in default Messaging app that message shows Failed with retry button
Default messaging app works fine but when i am trying to send sms from my app everytime it gives error generic failure and in default Messaging app that message shows Failed with retry button
Can you show me the syntax of phone number, i think i can help you.
val sms = SmsManager.getDefault()
sms.sendTextMessage(mobileNumber, null, "url", sentPI, deliveredPI) //+9176XXXXXXXX
try to remove the " + " from the phone number i think it will works fine.
val sms = SmsManager.getDefault()
sms.sendTextMessage(mobileNumber.replace("+",""), null, "url", sentPI, deliveredPI)
still same issue
#HelpingHands
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.SEND_SMS"/>
val subscriptionManager: SubscriptionManager = context!!.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE) as SubscriptionManager
val subscriptionInfoList = subscriptionManager.activeSubscriptionInfoList
//https://stackoverflow.com/questions/27351936/how-to-send-a-sms-using-smsmanager-in-dual-sim-mobile
val sms = SmsManager.getSmsManagerForSubscriptionId(subscriptionInfoList.get(0).subscriptionId)
sms.sendTextMessage(mobileNumber, null, url, sentPI, deliveredPI)
it works fine with me
@Antarix where your unregistering the broad cast receivers?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Why "Generics failure" error is coming while sending SMS through my ?