سلام خدمتش ما دوستان گرامی ، امیدوارم که حال همگی شما خوب باشه و خوش باشید با آموزش ارسال SMS در اندروید درخدمت شما هستم.

در راه زیر برای ارسال SMS با استفاده از دستگاه اندروید وجود دارد

استفاده از SMS Manager برای ارسال SMS

استفاده از Intent داخلی برای ارسال SMS

استفاده از SMS Manager برای ارسال SMS

SMS Manager عملکردهای Sms را از قبیل ارسال داده به دستگاه ارائه شده، کنترل می کند.

شما می توانید این آبجکت را از طریق فراخوانی روش استاتیک SmsManager.getDefault() ایجاد کنید، مانند زیر

SmsManager smsManager = SmsManager.getDefault();‎‎

زمانی که شما آبجکت Sms Manager را دارید می توانید از روش sendDataMessage() برای ارسال Sms به یک شماره موبایل مشخص شده استفاده کنید، مانند زیر

smsManager.sendTextMessage(“phoneNo”, null, “SMS text”, null, ‎null);‎‎

علاوه بر روش بالا، عملکردهای مهم دیگری در گروه Sms Manager وجود دارند که لیست آنها را در زیر مشاهده می کنند .

ردیف

متد ها و توضیحات

۱

ArrayList divideMessage(String text)

این روش یک متن پیام را به چندین بخش تقسیم می کند، هیچ کدام بزرگتر ازاندازه ی بزرگترین پیام متنی نیستند.

۲

static SmsManager getDefault()

این روش برای به دست آوردن نمونه ی پیش فرض SmsManager استفاده می شود.

۳

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

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

۴

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

یک متن چند بخشی SMS محور را ارسال می کند.

۵

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

یک متن SMS محور را ارسال می کند.

مثال

این مثال به طور عملی به شما نشان می دهد چگونه با استفاده از آبجکت SmsManager یک sms به شماره موبایل ارائه شده ارسال کنید.

برای آزمایش با این مثال به یک دستگاه موبایل مجهز شده به آخرین ورژن Android OS نیاز خواهید داشت، در غیر این صورت مجبور خواهید بود با مقلدی کار کنید که ممکن است به درستی کار نکند.

مراحل

توضیحات

۱

برای ایجاد یک برنامه ی اندروید از Eclipse IDE استفاده خواهید کرد و آن را با عنوان SendSMSDemo تحت بسته ی com.example.sendsmsdemo نام گذاری کنید. زمان ایجاد این برنامه مطمئن شوید که Target SDK و Compile With در آخرین ورژن Android SDK هستند تا از سطوح بالاتر API استفاده کنید.

۲

فایل src/MainActivity.java را تغییر دهید و کد لازم برای مراقبت از ارسال ایمیل اضافه کنید.

۳

لی اوت فایل XML مربوط به res/layout/activity_main.xml را تغییر داده و اگر لازم است مولفه ی GUI را به آن اضافه کنید. برای گرفتن شماره موبایل و متن SMS ارسالی یک GUI ساده و یک دکمه برای ارسال SMS اضافه می کنم.

۴

res/values/strings.xml را تغییر دهید تا مقادیر ثابت لازم را تعریف کنید.

۵

AndroidManifest.xml را به شکلی که در زیر می بینید تغییر دهید.

۶

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

در زیر محتوای تغییر یافته ی فایل فعالیت اصلی را مشاهده می کنید.

src/com.example.sendsmsdemo/MainActivity.java.‎

package com.example.sendsmsdemo;‎

import android.os.Bundle;‎

import android.app.Activity;‎

import android.telephony.SmsManager;‎

import android.util.Log;‎

import android.view.Menu;‎

import android.view.View;‎

import android.widget.Button;‎

import android.widget.EditText;‎

import android.widget.Toast;‎

public class MainActivity extends Activity {‎

‎ Button sendBtn;‎

‎ EditText txtphoneNo;‎

‎ EditText txtMessage;‎

‎ @Override

‎ protected void onCreate(Bundle savedInstanceState) {‎

‎ super.onCreate(savedInstanceState);‎

‎ setContentView(R.layout.activity_main);‎

‎ sendBtn = (Button) findViewById(R.id.btnSendSMS);‎

‎ txtphoneNo = (EditText) ‎findViewById(R.id.editTextPhoneNo);‎

‎ txtMessage = (EditText) findViewById(R.id.editTextSMS);‎

‎ sendBtn.setOnClickListener(new View.OnClickListener() {‎

‎ public void onClick(View view) {‎

‎ sendSMSMessage();‎

‎ }‎

‎ });‎

‎ }‎

‎ protected void sendSMSMessage() {‎

‎ Log.i(“Send SMS”, “”);‎

‎ String phoneNo = txtphoneNo.getText().toString();‎

‎ String message = txtMessage.getText().toString();‎

‎ try {‎

‎ SmsManager smsManager = SmsManager.getDefault();‎

‎ smsManager.sendTextMessage(phoneNo, null, message, ‎null, null);‎

‎ Toast.makeText(getApplicationContext(), “SMS sent.”,‎

‎ Toast.LENGTH_LONG).show();‎

‎ } catch (Exception e) {‎

‎ Toast.makeText(getApplicationContext(),‎

‎ “SMS faild, please try again.”,‎

‎ Toast.LENGTH_LONG).show();‎

‎ e.printStackTrace();‎

‎ }‎

‎ }‎

‎ @Override

‎ public boolean onCreateOptionsMenu(Menu menu) {‎

‎ // Inflate the menu; this adds items to the action bar ‎if it is present.‎

‎ getMenuInflater().inflate(R.menu.main, menu);‎

‎ return true;‎

‎ }‎

‎}

کد زیر محتوای فایل res/layout/activity_main.xml خواهد بود.

‎ ‎

‎ ‎

‎ ‎

‎ ‎