آموزش ارسال پیام از سیم کارت دوم در برنامه نویسی اندروید
سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش ارسال پیام از سیم کارت دوم در برنامه نویسی اندروید می پردازیم این کتاب خانه ای که به شما معرفی می کنیم زمان ارسال پیام از شما می پرسد که از کدام سیم کارت می خواهید پیام را اسال کنید در ادامه با ما همراه باشید.
این کتاب خانه توسط یکی از ایرانیان توسعه داده شده است. همانطور که گفتیم امکان ارسال پیام از دو سیم کارت وجود دارد و شما می توانید به هر شکلی که خواستید آن را سفارشی کنید.
برای اینکه کتاب خانه را اضافه کنید باید وارد فایل Build.gradle از نوع Module شده سپس در بخش dependencies خط زیر را اضافه کنید.
1 | compile 'ir.mtajik.android:advancedsmsmanager:1.0.6' |
پروژه را sync کنید. قندشکن فراموش نشه برای ست کردن قندشکن می توانید از آموزش زیر استفاده کنید.
لینک آموزش
بعد از اینکه پروژه sync شد دسترسی های زیر را در AndroidManifest.xml اضافه کنید.
1 2 | <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.READ_SMS" /> |
دقت کنید باید runtime permission استفاده کنید در اندروید M به بالا
آموزش runtimepermission در اندروید
برای ارسال اس ام اس می توانید مثل زیر از کلاس های کتاب خانه استفاده کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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) { } }); |
در بالا یکسری بخش ها optional است که می توانید آنها را قرار ندهید.
withCarrierNameFilter : در بخش دکمه ها نام MCI به طور مثال نمایش داده می شود (Sim1 , Sim2)
withCustomDialogForSendSms : می توانید این را قرار ندهید و از layout پیشفرض استفاده کنید ولی پیشنهاد می کنم استفاده کنید layout خیلی افتضاحی دارد.
withCustomDialogForChoseSim : در صورتی که می خواهید برای بخش انتخاب simcard یک layout سفارشی استفاده کنید می توانید از این ویژگی استفاده کنید در غیر این صورت آن را حذف کنید همانند ویژگی قبل.
needToShowDialog : اگر می خواهید در هر بار که ارسال انجام می شود قبل از ارسال از کاربر تایید بگیرید آن را true قرار دهید در غیر این صورت false باشد.
یکسری متود هم در آن implement شده است که عبارتند از :
- afterSuccessfulSMS : بعد از اینکه پیام به درستی ارسال شد.
- afterDelivered : بعد از اینکه پیام در آن سمت دریافت شد.
- afterUnSuccessfulSMS : بعد از اینکه پیام موفق نبود.
- onCarrierNameNotMatch : اگر کاربر با فیلتر ما ارسال را انجام داد مثلا از سیم کارت MCI .
اگر خواستید layout های سفارشی بسازید برای بخش های گفته شده باید مثل زیر باشد در غیر اینصورت کرش می کند.
دیالوگ مربوط به sendSmsDialog – دیالوگ ارسال اس ام اس
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <Button android:id="@+id/send_button" ... /> <Button android:id="@+id/cancel_button" ... /> <TextView android:id="@+id/dialog_title" ... /> <ProgressBar android:id="@+id/progressBar_total" ... /> |
simChoseDialog – دیالوگ انتخاب سیمکارت
1 2 3 4 5 6 7 8 9 10 11 12 | <Button android:id="@+id/sim1_button" ... /> <Button android:id="@+id/sim2_button" ... /> <TextView android:id="@+id/dialog_title" ... /> |
موفق باشید.