همان طور که میدانید امروزه برنامه نویسی اندروید یکی از پرکاربردترین انواع برنامه نویسی میباشد، بسیاری از برنامهها نیاز به وارد کردن کد تایید دارند که از طریق پیامک ارسال میشود، به همین علت نیاز دارید که ارسال sms در اندروید را فرا بگیرید تا بتوانید این کار را به سادگی انجام دهید. برای آموزش ارسال اس ام اس در اندروید 2 روش به صورت کلی وجود دارد که ما هر یک از این روشها را به صورت کامل توضیح میدهیم تا بتوانید از آنها در برنامهها و پروژههای اندرویدی خود استفاده کنید.
برای اینکه بخواهیم به آموزش ارسال sms در اندروید بپردازیم بهتر است در ابتدا روشهای این کار را به صورت کلی بررسی کنیم. اولین روش برای ارسال sms در اندروید استفاده از api میباشد که برای این کار طراحی شده است و به صورت آماده موجود است و شما میتوانید از آن برای ارسال sms در اندروید استفاده کنید. روش دوم کد زنی مستقیم در اندروید است که میتوانید با استفاده از ابزار intent که فوق العاده کاربردی میباشد این کار را انجام دهید. در ادامه هر یک از این 2 روش را به صورت جزئیتر توضیح خواهیم داد.
همان طور که میدانید در بسیاری از برنامههای اندرویدی در ابتدای نصب اجازه هایی از کاربر گرفته میشود که برنامه بتواند به سیستم دسترسی داشته باشد، این اجازهها شامل مواردی از قبیل اس ام اس، اینترنتی، دسترسی به مدیا و دسترسی به مخاطبین میباشد. بنابراین برای دسترسی به اس ام اسها و ارسال sms در اندروید نیز نیاز دارید که از کاربر این اجازه را دریافت کنید. برای دریافت اجازه کاربر در قسمت مانیفست پروژه خود باید دستور زیر را تایپ کنید:
<uses-permission android:name=”android.permission.SEND_SMS” />
به وسیله این دستور میتوانید از کاربر اجازه استفاده از سیستمهای ارسال اس ام اس را دریافت کنید.
همان طور که گفته شد یکی از روشهای ارسال sms در اندروید استفاده از API است که برای این کار طراحی شده است و شما به وسیله آن میتوانید در برنامههای اندرویدی خود اقدام به ارسال اس ام اس کنید. همان طور که میدانید APIها طراحی شده اند که کد نویسی را برای برنامه نویسان راحتتر کنند و در واقع ابزارهایی برای راحتی کار برنامه نویسان هستند. API که برای ارسال sms در اندروید به کار میرود Ams Manager API نام دارد که برای استفاده از آن میتوانید به این شکل عمل کنید:
SmsManager smsManager = SmsManager.getDefualt();
smsManager.sendTextMessage(“phone No”,”sms message”, null, null);
همان طور که مشاهده میکنید به راحتی میتوانید با این کدها اقدام به ارسال sms در اندروید کنید.
همان طور که گفته شد میتوانید از این دستورات برای ارسال sms در اندروید استفاده کنید. حال به توضیح کدهای نوشته شده در قسمت قبل میپردازیم. در قسمت اول از این کدها با دستور SmsManager smsManager یک شی از کلاس SmsManager ساخته ایم و با دستور SmsManager.getDefault() آن را مقدار دهی کرده ایم تا بتوانیم به سیستم اندروید گوشی برای ارسال اس ام اس دسترسی داشته باشیم. بعد از این مرحله با استفاده یک متد که در داخل کلاس SmsManager قرار داده شده است به نام متد sendTextMessage اقدام به ارسال sms در اندروید میکنیم، این متد 4 آرگومان را دریافت میکند که مهمترین آنها 2 آرگومان اول است که فقط به توضیح آن میپردازیم، آرگومان اول اقدام به دریافت شماره تلفن شما در قالب یک string میکند و آرگومان دوم نیز متن پیام شما را باز هم در قالب یک string دریافت میکند و برای شماره ای که به عنوان آرگومان اول ارسال شده بود ارسال میکند.
همان طور که گفته شد علاوه بر استفاده از API برای ارسال sms در اندروید روش دیگری نیز وجود دارد که این روش استفاده از Intentها در برنامه نویسی اندروید میباشد، برای این کار تنها کافی است کدهای زیر را وارد کنید:
Intent intent = new Intent( Intent.ACTION_VIEW ) ;
Intent.putExtra( “sms_body”, “content” );
startActivity( intent );
به راحتی با استفاده از این کد میتوانید برنامه ساده ای را طراحی کنید که به وسیله آن اقدام به ارسال sms در اندروید کنید. همانطور که مشاهده میکنید در این برنامه از API مخصوص ارسال پیامک استفاده نشده است و خودمان با استفاده از ابزارهای اندروید اقدام به این کار کرده ایم در ادامه به توضیح کدهای نوشته شده در این برنامه ساده میپردازیم تا موفق به ارسال sms در اندروید شوید.
در خط اول از کدهای نوشته شده در قسمت قبلی با استفاده از دستورهای Intent intent یک شی از کلاس Intent ساخته ایم و بعد از آن نیز آن را طبق معمول مقدار دهی کرده ایم. با استفاده از دستورهای putExtra در داخل شی Intent که ساخته ایم اطلاعاتی را قرار میدهیم که این اطلاعات به عنوان آرگومان به این متد ارسال میشود. در پایان نیز با استفاده از دستور startActivity(intent) اقدام به شروع کار و ارسال sms در اندروید کرده ایم. متد startActivity در واقع اقدام به لانچ کردن و بردن ما از اکتیویتی حاضر به اکتیویتی دیگری میکند که مقصد این کار در خط اول به عنوان آرگومان با کانستراکتور کلاس Intent ارسال شده است که در این برنامه ساده مقصد برنامه و اپلیکیشن ارسال اس ام اس در اندروید شما میباشد که در صورتی که این برنامه بیشتری از یکی باشد از شما این سوال پرسیده میشود که برای ارسال اس ام اس قصد دارید از کدام برنامه استفاده کنید.
نکته ای که درباره مطالب آموزش داده شده باید گفت این است که اینها تنها برنامههای بسیار ساده ای بودند که نوشته شدند و شما میتوانید این برنامهها را به میزان دلخواه خود پیچیدهتر کنید و از دستورات پیچیدهتری استفاده کنید، به عنوان مثال میتوان گفت که SmsManager ApI دارای متدهای بسیار زیادی میباشد که میتوانید از هر یک از آنها استفاده کنید و برنامه خود را به میزان دلخواه بهبود ببخشید حتی بعضی اوقات این مدلها را بازنویسی کنید تا مطابق میل شما عمل کنند.