Signup/Sign In

SMS Example

Let's make a simple app to send sms using both the methods i.e. sending sms through built-in application and through our own app.

activity_main.xml file

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.android.sms.MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:text="send sms"
        android:onClick="sendSmsThroughApp"
        />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:text="Intent"
        android:onClick="sendSmsThroughBuiltInApplication"
        />

</RelativeLayout>

SMS in example in Android


MainActivity.java

package com.example.android.sms;

import android.Manifest;

import android.content.Intent;

import android.content.pm.PackageManager;

import android.net.Uri;

import android.os.Bundle;

import android.support.annotation.NonNull;

import android.support.v4.app.ActivityCompat;

import android.support.v4.content.ContextCompat;

import android.support.v7.app.AppCompatActivity;

import android.telephony.SmsManager;

import android.view.View;

import android.widget.Toast;



public class MainActivity extends AppCompatActivity {



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

    }

    public void sendSmsThroughBuiltInApplication(View v) {

        Uri uri = Uri.parse("smsto:987654321");

        Intent i = new Intent(Intent.ACTION_SENDTO, uri);

        i.putExtra("sms_body", "I Love StudyTonight");

        startActivity(i);

    }

    public void sendSmsThroughApp(View v) {

        int smsPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS);

        if (smsPermission == PackageManager.PERMISSION_GRANTED) {

            sendSmsThroughSmsManager();

        } else {

            ActivityCompat.requestPermissions(this, new String[]{

                    Manifest.permission.SEND_SMS}, 0);

        }

    }

    public void sendSmsThroughSmsManager() {

        SmsManager sms = SmsManager.getDefault();

        sms.sendTextMessage("5554", null, "I Love StudyTonight", null, null);

        Toast.makeText(this, "Hurray..sms will be delivered shortly", Toast.LENGTH_LONG).show();

    }

    @Override

    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

        switch (requestCode) {

            case 0:

                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

                    sendSmsThroughSmsManager();

                } else {

                    Toast.makeText(this, "Permisson denied", Toast.LENGTH_SHORT).show();

                }

        }

}

}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.akshay.sms">

    <uses-permission android:name="android.permission.SEND_SMS"></uses-permission>

    <uses-permission android:name="android.permission.READ_SMS"></uses-permission>


    <application

        android:allowBackup="true"

        android:icon="@mipmap/ic_launcher"

        android:label="@string/app_name"

        android:roundIcon="@mipmap/ic_launcher_round"

        android:supportsRtl="true"

        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>


</manifest>

SMS in example in Android

SMS sent directly through your app


SMS in example in Android

SMS sent through built-in application