Advertisement
Guest User

Kotlin SMS Demo

a guest
Jul 12th, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 2.52 KB | None | 0 0
  1. package blackwell.testapp
  2.  
  3. import android.Manifest
  4. import android.support.v7.app.AppCompatActivity
  5. import android.os.Bundle
  6. import android.widget.EditText
  7. import android.content.Intent
  8. import android.telephony.SmsManager
  9. import android.widget.Toast
  10. import android.content.IntentFilter
  11. import android.app.Activity
  12. import android.app.PendingIntent.getBroadcast
  13. import android.content.BroadcastReceiver
  14. import android.content.Context
  15. import android.support.v4.app.ActivityCompat
  16.  
  17.  
  18.  
  19.  
  20. class MainActivity : AppCompatActivity() {
  21.  
  22.     val SEND_SMS = 101
  23.  
  24.     override fun onCreate(savedInstanceState: Bundle?) {
  25.         super.onCreate(savedInstanceState)
  26.         setContentView(R.layout.activity_main)
  27.  
  28.         ActivityCompat.requestPermissions(this, arrayOf<String>(Manifest.permission.SEND_SMS), SEND_SMS)
  29.  
  30.         val sendButton = findViewById(R.id.send_btn)
  31.         val textMessage = findViewById(R.id.msg) as EditText
  32.         val phoneNumber = findViewById(R.id.phone_no) as EditText
  33.  
  34.         sendButton.setOnClickListener {
  35.             if (!phoneNumber.text.isBlank()) {
  36.                 if(!textMessage.text.isBlank()) {
  37.                     sendSMS(phoneNumber.text.toString(), textMessage.text.toString())
  38.                     textMessage.text.clear()
  39.                     textMessage.error = null
  40.                     phoneNumber.error = null
  41.                 } else {
  42.                     textMessage.error = "Cannot leave message blank"
  43.                 }
  44.             } else {
  45.                 phoneNumber.error = "Enter A Phone #"
  46.             }
  47.         }
  48.  
  49.     }
  50.  
  51.     private fun sendSMS(phoneNumber: String, message: String) {
  52.         val SENT = "SMS_SENT"
  53.         val DELIVERED = "SMS_DELIVERED"
  54.  
  55.         val sentPI = getBroadcast(this, 0,
  56.                 Intent(SENT), 0)
  57.  
  58.         val deliveredPI = getBroadcast(this, 0,
  59.                 Intent(DELIVERED), 0)
  60.  
  61.         registerReceiver(object : BroadcastReceiver() {
  62.             override fun onReceive(arg0: Context, arg1: Intent) {
  63.                 when (resultCode) {
  64.                     Activity.RESULT_OK -> Toast.makeText(baseContext, "SMS delivered",
  65.                             Toast.LENGTH_SHORT).show()
  66.                     Activity.RESULT_CANCELED -> Toast.makeText(baseContext, "SMS not delivered",
  67.                             Toast.LENGTH_SHORT).show()
  68.                 }
  69.             }
  70.         }, IntentFilter(DELIVERED))
  71.  
  72.         val sms = SmsManager.getDefault()
  73.         sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI)
  74.     }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement