ارسال پیامک در اندروید - برنامه نویسی اندروید

می‌توانید با استفاده از یک API بنام SmsManager و یا برنامه‌های SMS داخلی نصب شده بر روی دستگاه, اقدام به ارسال پیامک در اندروید بکنید. در این آموزش دو مثال اساسی برای ارسال پیامک در اندروید را برای شما آورده ایم و برای ارسال مستقیم در انتهای این آموزش یک مثال کامل را بیان کرده ایم.

SmsManager API

SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage("phoneNo", null, "sms message", null, null);

برنامه های داخلی ارسال SMS

Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", "default content"); 
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);

البته، هر دو به مجوز SEND_SMS نیاز دارند.

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

به غیر از متدهای فوق، چند توابع مهم دیگر در کلاس SmsManager موجود است که این متدها در ادامه ذکر شده است :

متد و توضیحات ردیف

ArrayList<String> divideMessage(String text)

این متد یک متن پیام را به چند قسمت تقسیم می کند که هیچ کدام بزرگتر از حداکثر اندازه پیام اس ام اس نباشد و یک آرایه رشته ای از متن پیام برمیگرداند.

1

static SmsManager getDefault()

این متد برای دریافت نمونه پیش فرض SmsManager که قبلا درون سیستم نمونه سازی شده است, استفاده می شود.

2

void sendDataMessage(String destinationAddress, String scAddress, short destinationPort, byte[] data, PendingIntent sentIntent, PendingIntent deliveryIntent)

این متد برای ارسال پیامک مبتنی بر داده استفاده میشود که این داده ها را به یک پورت برنامه خاص ارسال میکند.

3

void sendMultipartTextMessage(String destinationAddress, String scAddress, ArrayList<String> parts, ArrayList<PendingIntent> sentIntents, ArrayList<PendingIntent> deliveryIntents)

این متد برای ارسال پیامک های بزرگ استفاده میشود و متن پیام بلند را بصورت چند قسمتی در قالب یک پیامک ارسال میکند.

4

void sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)

یک متن دریافت میکند و پیامک ساده ارسال کنید.

5

مثال

مثال زیر بطور عملی به شما نشان می دهد که چگونه از شی SmsManager برای ارسال پیامک به شماره موبایل داده شده, استفاده کنید.

مراحل و توضیحات ردیف
در AndroidStudio یک پروژه جدید با پکیج نیم جدید ایجاد کنید و مراحل زیر را دنبال کنید. 1
کدهای درون فایل MainActivity.class را مطابق کدهای که در پایین وجود دارد تغییر بدهید. 2
کدهای درون فایل activity_main.xml را مطابق کدهای که در پایین وجود دارد تغییر بدهید. 3
مجوزهای لازم را در بالا آورده ایم آنها را بررسی و در فایل AndroidManifest.xml اضافه کنید. 4
برنامه را بر روی یک تلفن واقعی اجرا کنید و تست را انجام بدهید. 5

کدهای فایل MainActivity.java

package com.example.test12a;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.AppCompatEditText;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.widget.Toast;
import java.util.Objects;

public class MainActivity extends AppCompatActivity {

    private static final int MY_PERMISSIONS_REQUEST_SEND_SMS = 0;
    AppCompatEditText txtPhoneNo, txtMessage;
    String phoneNo, message;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        txtPhoneNo = findViewById(R.id.editText);
        txtMessage = findViewById(R.id.editText2);

        findViewById(R.id.btnSendSMS).setOnClickListener(view -> sendSMSMessage());
    }

    protected void sendSMSMessage() {
        phoneNo = Objects.requireNonNull(txtPhoneNo.getText()).toString();
        message = Objects.requireNonNull(txtMessage.getText()).toString();

        if (ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED) {
            if (!ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.SEND_SMS)) {
                ActivityCompat.requestPermissions(this,
                        new String[]{Manifest.permission.SEND_SMS},
                        MY_PERMISSIONS_REQUEST_SEND_SMS);
            }
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == MY_PERMISSIONS_REQUEST_SEND_SMS) {
            if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                SmsManager smsManager = SmsManager.getDefault();
                smsManager.sendTextMessage(phoneNo, null, message, null, null);
                Toast.makeText(getApplicationContext(), "پیام ارسال شد.",
                        Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(getApplicationContext(),
                        "خطا در ارسال پیامک, مجدد امتحان کنید.", Toast.LENGTH_LONG).show();
            }
        }

    }

}

کدهای فایل activity_main.xml

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

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:text="مثال ارسال پیامک"
        android:textSize="30sp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:gravity="center"
        android:text="7cloner.com"
        android:textColor="#3F51B5"
        android:textSize="30sp" />


    <androidx.appcompat.widget.AppCompatEditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_below="@+id/textView2"
        android:layout_centerHorizontal="true"
        android:hint="شماره تماس را وارد کنید"
        android:inputType="phone"
        android:textColorHint="@color/abc_primary_text_material_dark" />

    <androidx.appcompat.widget.AppCompatEditText
        android:id="@+id/editText2"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_below="@+id/editText"
        android:hint="متن پیام را وارد کنید"
        android:textColorHint="@color/abc_primary_text_material_dark" />

    <Button
        android:id="@+id/btnSendSMS"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText2"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="48dp"
        android:text="ارسال پیامک" />

</RelativeLayout>

فایل AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.test12a" >

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

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Test12A"
        tools:targetApi="31" >

        <activity
            android:name=".MainActivity"
            android:exported="true" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

به این نکته توجه کنید که این مثال بر روی تلفن های واقعی قابل تست میباشد. سرآخر بعد از اجرای پروژه میتوانید آنرا تست کنید و نتیجه به این صورت خواهد بود:

ارسال پیامک در اندروید

قیمت آموزش
رایگان
نوع دسترسی
رایگان

این مقاله در حال حاضر تنها به روش رایگان در دسترس می باشد.

ناصر خالدی
مدرس دوره

ناصر خالدی

مهندس شبکه, امنیت, برنامه نویسی تلفن های هوشمند, طراح وب سایت و متخصص هوش مصنوعی

گفتگوی برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن

دوره های پیشنهادی

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر نیاز است تا ابتدا وارد سایت شوید.

هیچ نظری ارسال نشده است.

مقالات پیشنهادی

درباره فایل Robots.txt

این فایل ربات های خزنده موتور های جستجو را راهنمایی می کنند و به آنان می فهماند که چه دایرکتوری و لینک هایی قابل بررسی و چه دایرکتوری و لینک هایی غیرقابل برررسی می باشند...


۵۱۲
۰
۲ دی ۱۳۹۹

هک و امنیت

در تعریف کلی این واژه می توان گفت که به پیدا کردن راه های نفوذ به یک حریم شخصی و استفاده غیر مجاز از آن را هک می نامیم. هدف از هک می تواند ...


۶۵۶
۰
۱۳ آذر ۱۳۹۹

جاوا اسکریپت

جاوا اسکریپت یک زبان پویا و محبوب مبتنی بر شیء, داینامیک و مفسری می باشد. این زبان برای برنامه نویسی سمت سرور و کلاینت استفاده میشود که ...


۵۹۸
۰
۱۳ آذر ۱۳۹۹

نود جی اس

توسعه دهندگان نود جی اس, زبان جاوا اسکریپت را از یک زبان قابل اجرا در مرورگر خارج کرده و به زبانی تبدیل کردن که بتوان آن را بصورت یه اپلیکیشن مستفل اجرا کرد و ...


۶۳۵
۰
۱۲ آذر ۱۳۹۹