ارسال اس ام اس در اندروید
با سلام امروز با اموزش ارسال اس ام اس توسط جاوا خدمت شما اومدیم در این پست دو روش ساده و کاربردی رو به شما اموزش میدهیم.
در مرحله اول لازم است که اجازه دسترسی به برناممان بدهیم همانطور که در پست بررسی اینترنت گفته شد دادن دسترسی یکی از مهم ترین کار های اندروید است.
برای اینکار به فایل AndroidManifest.xml که نقش شناسنامه برنامه مارا دارد میرویم.
1 | uses-permission android:name="android.permission.SEND_SMS"; |
خب حالا نوبت نوشتن کد هایمان است در نوع اول ارسال اس ام اس لازم است که اجازه دسترسی را بدهیم زیرا ارسال اس ام اس بلافاصله بعد از زدن دستور انجام میشود و هیچ سوالی از کاربر نمیشود ولی در نوع دوم ارسال اس ام اس به وسیله خود کاربر است.
روش اول:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | try { String number = "09000000000"; String message = "send this!"; SmsManager sendsms = SmsManager.getDefault(); sendsms.sendTextMessage(number, null, message, null, null); Toast.makeText(getApplicationContext(), "sms send", Toast.LENGTH_LONG).show(); } catch (Exception e) { Toast.makeText(getApplicationContext(), "SMS faild, please try again later!", Toast.LENGTH_LONG).show(); e.printStackTrace(); } |
خب همانطور که میبینید دو متغیر رشته ای تعریف کردیم یکی برای شماره همراه و دیگری برای متن پیام.سپس برای انجام عملیات اصلی از ابزار SmsManeger استفاده میکنیم و لازم است که فضای نام import android.telephony.SmsManager; را تعریف کنید.در صورت تعریف نکردن با رفتن روی نام مورد نظر و زدن import اینکار انجام میشود. همچنین از دستور try{}catch(){} برای جلوگیری از کرش برنامه استفاده میکنیم و همینطور برای اینکه متوجه شویم پیامکمان ارسال شده است یا خیر.
روش دوم:
1 2 3 4 | Intent sendIntent = new Intent(Intent.ACTION_VIEW); sendIntent.putExtra("sms body!", "default content"); sendIntent.setType("vnd.android-dir/mms-sms"); startActivity(sendIntent); |
در روش دوم که به ظاهر روش اسان تری است همانطور که گفته شد ارسال اس ام اس بوسیله کاربر است.لازم است که فضای نامی import android.content.Intent; را تعریف کنیم یا همانطور که گفته شد import کنیم. به وسیله iintent کاربر به صفحه ارسال پیام منتقل میشود و لازم است که ارسال اس ام اس توسط خود کاربر زده شود.
دستور PutExtra در جاوا دستوری است که هنگامی که میخواهیم یک مقدار را از یک اکتیویتی به اکتیویتی دیگر انتقال دهیم استفاده میکنیم.در این مثال میخواهیم متن اس ام اس را به اکتیویتی ارسال اس ام اس(که همان برنامه ارسال پیامک در گوشی همراه است)انتقال دهیم.
سلام روز بخیر اگر بخوایم یک edit text و یک button ارسال برای روش اول اضافه کنیم باید چکار کنیم منظورم اینکه یک صحفه ارسال پیام برای مخاطب مدنظرم ایجاد کنم
باتسکر
سلام و درود
شما باید آنها را قرار دهید مقدارها را از EditText گرفته با متد getText سپس با در رویداد دکمه عمل send رو انجام دهید (کد رو در رویداد قرار دهید.)
موفق و پیروز باشید.
استاد با تشکر فراوان فقط ببخشید میتونید کد ا کتیویتی را بهم بگید چون هر چی پیام میفرستم به شماره موردنظرم اینو میگهandroid.support.v7.widget.AppCompatEditText{3e7be6b9 VFED..CL .F…… 110,278-430,346 #7f07008a app:id/editText2} نمیدونم مشکل چیه
سلام و درود از کد زیر استفاده کنید.
موفق و پیروز باشید.
دستتون درد نکنه خیلیییییی ممنون ???
سلام استاد بیخشید که هی مزاحم میشم من یک سوال داشتم میخواستم بدونم که من وقتی sms ارسال میکنم نمیخوام که دیگه شمارمو تو message box گوشیم نشون که برای کی فرستادم مستقیما بره بدون نشون دادن در جایی که پیام میگرم و میفرستم
سلام امکان پذیر نیست باید sms بروی برنامه شما ست شده باشد.
موفق باشید.
منظورم دقیقا اینکه به inbox پیام نره و جابجا بازدن دکمه send پیام بره و دیگه شماره را جایی نشان نده
باتشکر فراوان
سلام و درود
در ورژن های جدید اندروید امکان پذیر نیست مگر اینکه کاربر برنامه اصلی پیامک گوشی را بروی برنامه شما ست کند.
موفق باشید.
سلام.چطوری میشه برای روش دوم متن از قبل تعیین شده ای قرار داد تا هنگامی که کاربر به صفحه ی ارسال پیام هدایت میشه متن اماده باشه و فقط نیاز به وارد کردن شماره باشه؟sendIntent.putExtra(Intent.EXTRA_TEXT,”salam”); ار این دستور هم استفاده کردم مفید نبود
سلام وقت بخیر
اگه تعداد پیام ها بالا بود چطوری میشه بینشون یه وقفه مثلا 500 میلی ثانیه ایجاد کرد؟
سلام از دستور:
Thread.sleep(500);
استفاده کن
ایول اقا شایان خیلی خوب بود تشکر
کمترین عددی که برای تاخیر بین دو sms خوبه چقدره؟؟
ممنونم
سلام
کد 1 ارور داد
برای یکی از public ها