AdvancedSmsManager کتابخانه پیشرفته ای است وظیفه ارسال sms در اندروید را می توانید بطور کامل به آن محول کنید. همچین امکان ارسال پیام کوتاه از گوشی های دو سیم کارته با امکان انتخاب از کاربر نیز وجود خواهد داشت. (این امکان برای sdk بالای ۲۱ قابل استفاده است و در گوشی های پایین تر از Lollipopo فعال نیست.) تلاشم در تهیه این کتابخانه محول کردن تمام امور به کتابخانه و فقط استفاده راحت از آن می باشد. در خود کتابخانه نیز تمامی بخش ها بصورت DI توسط Dagger2 پیاده سازی شده است.
برای استفاده از این کتابخانه خط زیر را در گریدل اپ بنویسید:
1 |
compile 'ir.mtajik.android:advancedsmsmanager:1.1.0' |
کافیست به بیلدر کانتکست و شماره مقصد را بدهید، سپس می توانید از امکانات اختیاری به همراه with استفاده کنید. مثلا می توانید برای سیم کارت فیلتر بگذارید که مثلا فقط ایرانسل ارسال شود، همچنین دیالوگ های نمایشی به کاربر می تواند دیالوگ های پیش فرض برنامه باشد یا اینکه دیالوگ های شخصی شده شما.
برای استفاده فقط کافیست دستور زیر را اجار کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
SmsHandler.builder(context, "+989120000000") .withCarrierNameFilter("MCI") .withCustomDialogForSendSms(R.layout.my_sms_dialog) .withCustomDialogForChoseSim(R.layout.simcard_choosing_dialog) .needToShowDialog(false) .build().sendSms(DIALOG_MESSAGE, SMS_BODY, new MySmsManager.SMSManagerCallBack() { @Override public void afterSuccessfulSMS(int smsId) { } @Override public void afterDelivered(int smsId) { } @Override public void afterUnSuccessfulSMS(int smsId, String message) { } @Override public void onCarrierNameNotMatch(int smsId, String message) { } }); |
همانطور که ملاحظه می نمایید چهار تا کالبک خواهد داشت که شما می توانید اتفاقات مورد نظر بعد از هرکدام را زیر آن ها بنویسید.
afterSuccessfulSMS
بعد از ارسال موفقیت آمیز اس ام اس.
afterDelivered
بعد از اینکه پیام کوتاه به مقصد رسید چه اتفاقی بیافتد.
afterUnSuccessfulSMS
بعد از ناموفق بودن ارسال چه اتفاقی بیافتد. ( دلیل عدم موفقیت بصورت استرینگ قابل دسترس است)
onCarrierNameNotMatch
وقتی اتفاق می افتد که سیمکارت انتخاب شده با فیلتر داده شده مطابقت ندارد. ( برای sdk بالای ۲۱ قابل استفاده است)
برای استفاده از این کتابخانه دو مجوز Manifest.permission.SEND_SMS و Manifest.permission.READ_PHONE_STATE باید گرفته باشید. توضیحات کامل و نحوه استفاده را می توایند در لینک Github ببینید. در صورتی که در پیاده سازی آن مشکل داشتید و ها هر سوال یا مطلب دیگری رو با من به اشتراک بگذارید.
لینک پروژه در Github
https://github.com/mahdit83/advancedSmsManager
لینک پروژه در Bintray
https://bintray.com/mahdi/maven/advancedsmsmanager
لینک در android-arsenal
https://android-arsenal.com/details/1/6024
منبع: بایت کد