رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پست های پیشنهاد شده

Android Receive SMS

مشاهده فایل

با استفاده از سرویس دریافت اس ام اس می توان پیام دریافت شده را به صورت مستقیم در اپلیکیشن نمایش داد.نکته مهم priority در مانیفست در بالاترین الویت قرار داده شود.

android_receive_sms.jpg


 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

  • مطالب مشابه

    • توسط Androidm
      سلام خدمت همه دوستان عزیز.من با استفاده از تائیدیه پیامکی ثبت نام کاربر رو انجام میدم این کار بدون مشکل هسا اما مشکل اصلیم اینکه توکن رو دریافت نمیکنم باpostmanهم تست میکنی به درستی توکن نمایش داده میشه اما داخل برنامه nullنمایش داده میشه ممنون میشم راهنمایی کنید
      class VerifyPhoneNumberActivity : AppCompatActivity(), Broadcast_retiversms.Otplistner { lateinit var binding: ActivityVerifyPhoneNumberBinding lateinit var smsreciver: Broadcast_retiversms lateinit var countDownTimer: CountDownTimer var timersecounds_mili = 0L val viewModel: AuthViewModel by viewModel() val compositeDisposable = CompositeDisposable() @SuppressLint("SetTextI18n") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityVerifyPhoneNumberBinding.inflate(layoutInflater) setContentView(binding.root) SmsRetrieversetup() Timerstart(60000) binding.txtMsgPhone.text = "کد ارسال شده برای :" + intent.getStringExtra("mobile") binding.otpView.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { } override fun afterTextChanged(s: Editable?) { if (s.toString().length == 5) { Senddata(binding.otpView.text.toString(), intent.getStringExtra("mobile")!!) } } }) } fun SmsRetrieversetup() { smsreciver = Broadcast_retiversms() smsreciver.setOtplistner(this) val intentFilter = IntentFilter() intentFilter.addAction(SmsRetriever.SMS_RETRIEVED_ACTION) this.registerReceiver(smsreciver, intentFilter) val client = SmsRetriever.getClient(this) val task = client.startSmsRetriever() task.addOnSuccessListener { } task.addOnFailureListener { } } fun Senddata(code: String, mobile: String) { val callback = viewModel.Sendcode(mobile, code) callback.enqueue(object : Callback<Model_register> { override fun onResponse( call: Call<Model_register>, response: Response<Model_register>, ) { if (response.isSuccessful) { if (response.body()!!.status == "ok") { Timber.e(response.body()!!.token) // val shardprefrnsess = getSharedPreferences("user", 0) // val editor = shardprefrnsess.edit() // editor.putString("moible", response.body()!!.mobile) // editor.apply() // val intent = Intent(applicationContext, HomeFragment::class.java) // startActivity(intent) // finish() } } } override fun onFailure(call: Call<Model_register>, t: Throwable) { MaterialDialog(this@VerifyPhoneNumberActivity).show { title(R.string.error_title) cornerRadius(22f) positiveButton(text = "باشه") } } }) } fun Timerstart(timersecounds: Long) { countDownTimer = object : CountDownTimer(timersecounds, 1000) { override fun onTick(p0: Long) { timersecounds_mili = p0 UpdateChaneUi() } override fun onFinish() { countDownTimer.cancel() binding.txttimer.setText("ارسال مجدد کد فعال سازی") binding.txttimer.setOnClickListener { val appsignatureHashHelper = AppSignatureHashHelper(applicationContext) val callback = viewModel.RegisterUser( intent.getStringExtra("mobile")!!, appsignatureHashHelper.appSignatures[0] ) callback.enqueue(object : Callback<Model_register> { override fun onResponse( call: Call<Model_register>, response: Response<Model_register>, ) { if (response.isSuccessful) { if (response.body()!!.status == "ok") { Timerstart(60000) UpdateChaneUi() } } } override fun onFailure(call: Call<Model_register>, t: Throwable) { MaterialDialog(this@VerifyPhoneNumberActivity).show { title(R.string.error_title) cornerRadius(22f) positiveButton(text = "باشه") } } }) } } } countDownTimer.start() } @SuppressLint("SetTextI18n") fun UpdateChaneUi() { val min = (timersecounds_mili / 1000) / 60 val sec = (timersecounds_mili / 1000) % 60 binding.txttimer.text = "$min:$sec" } override fun otpmessagesms(opt: String) { unregisterReceiver(smsreciver) val pattern = Pattern.compile("(\\d{5})") val matcher = pattern.matcher(opt) var value = "" if (matcher.find()) { value = matcher.group(1) binding.otpView.setText(value) } if (!value.isEmpty()) { Senddata(intent.getStringExtra("mobile")!!, value) } } override fun otpmessagetimeout() {} override fun otpmessagesms_error() {} override fun onDestroy() { LocalBroadcastManager.getInstance(this).unregisterReceiver(smsreciver) super.onDestroy() } override fun onStop() { super.onStop() compositeDisposable.clear() } }  








    • توسط Omid Zakeri
      با استفاده از سرویس دریافت اس ام اس می توان پیام دریافت شده را به صورت مستقیم در اپلیکیشن نمایش داد.نکته مهم priority در مانیفست در بالاترین الویت قرار داده شود.

    • توسط roozbehzi
      من چند تا ورژن مختلف از اندروید استودیو نصب کردم پروژه که میسازم
      قسمتی که لیست فایل ها و اینا هست خیلی فرق داره با چیزی که تو همه سایت ها و کتاب ها هست
      عکسشو میفرستم
      در شکل اتچ شده عکس شماره 2 مربوط به اندریود استودیو نصب شده خودمه  اما عکس شماره ۱ مربوط به چیزی هست که تو همه سایت ها دیده میشه
      چه راهی هست و چیه مشکل که واسه من java و manifests و res رو نشون نمیده بجاش چیزای دیگه اورده
      http://uupload.ir/files/pq1d_and.png
    • توسط 123qwe
      سلام دوستان
      من یه برنامه میخوام بنویسم که یه فایل دارم که داخلش فرضن 100 تا کد ussd هستش میخوام بعد از اجرای هر کد برنامه منتظر دریافت پیامکی که از اپراتور میرسه بمونه و ان پیامک را بخواند و سپس کد ussd بعدی را اجرا کنه و این چرخه انقد ادامه پیدا کنه تا فایل تمام شود
      سوال: الان میتونم کد ussd را اجرا کنم و پیامک را بخوانم اما نمیدونم چطوری باید توی برنامه بگم بعد خواندن پیامک کد بعدی را اجرا کن؟ یعنی نمیتونم این 2تا را به هم ربط بدم، لطفا اگر اطلاعاتی دارید واسم توضیح بدید تا متوجه بشم چون مبتدی هستم، با تشکر از شما.
      کد ارسال ussd بعد از کلیک روی button و اجرای تابع ussd_run در فایل MainActivity.java
      [shcode=java]String ussdCode = "*0" + Uri.encode("#");
              if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
                  // TODO: Consider calling
                  //    ActivityCompat#requestPermissions
                  // here to request the missing permissions, and then overriding
                  //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
                  //                                          int[] grantResults)
                  // to handle the case where the user grants the permission. See the documentation
                  // for ActivityCompat#requestPermissions for more details.
                  return;
              }
              startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + ussdCode)));[/shcode]
      کد خواندن پیامک در فایل manifest
      [shcode=xml]
                 
                     
                          "android.provider.Telephony.SMS_RECEIVED" />
                 
              [/shcode]
      کد خواندن پیامک در فایل SmsReceiver.java
      [shcode=java]import android.content.BroadcastReceiver;
      import android.content.Context;
      import android.content.Intent;
      import android.os.Bundle;
      import android.telephony.SmsMessage;
      import android.widget.Toast;
      import java.io.BufferedWriter;
      import java.io.FileWriter;
      import java.io.IOException;
      public class SmsReceiver extends BroadcastReceiver
      {
          @Override
          public void onReceive(Context context, Intent intent)
          {
              //---get the SMS message passed in---
              Bundle bundle = intent.getExtras();
              SmsMessage[] msgs = null;
              String messageReceived = "";
              if (bundle != null)
              {
                  //---retrieve the SMS message received---
                  Object[] pdus = (Object[]) bundle.get("pdus");
                  msgs = new SmsMessage[pdus.length];
                  for (int i = 0; i < msgs.length; i++)
                  {
                      msgs = SmsMessage.createFromPdu((byte[]) pdus);
                      messageReceived += msgs.getMessageBody().toString();
                  }
                  String senderPhoneNumber=msgs[0].getOriginatingAddress ();
                  if(senderPhoneNumber.equals("+98")) {
                      //نشان دادن رسیدن مسیج جدید
                      Toast.makeText(context, messageReceived, Toast.LENGTH_SHORT).show();
                      // گرفتن شماره تلفن فرستنده
                      //String senderPhoneNumber=msgs[0].getOriginatingAddress ();
                      Toast.makeText(context, senderPhoneNumber, Toast.LENGTH_SHORT).show();
                     
                  }
              }
          }
      }[/shcode]
    • توسط Farzad Sarseifi
      بیشتر ما در این روزگار دارای یک گوشی هستیم و میتوانیم پیامک ارسال نمایید.حال اگر بخوایم اپلیکیشنی بنویسیم که از آن طریق SMS بفرستیم باید چیکار کنیم.
      برای اینکار در اندروید SmsManager برای اینکار قرار داده شده است.
      در این آموزش قصد داریم یک SMS را بصورت متنی ساده به شماره مورد نظر ارسال نماییم
      روال کار بدین صورت است دو EditeText داریم ، یکی برای شماره و یکی هم برای متن
      فایل main.xml
      <?xml version="1.0" encoding="utf-8"?> android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > android:id="@+id/textViewPhoneNo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="5dip" android:text="Enter Phone Number : " android:textAppearance="?android:attr/textAppearanceLarge" /> android:id="@+id/editTextPhoneNo" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="5dip" android:phoneNumber="true" > android:id="@+id/textViewSMS" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="5dip" android:text="Enter SMS Message : " android:textAppearance="?android:attr/textAppearanceLarge" /> android:id="@+id/editTextSMS" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="5dip" android:gravity="top" android:inputType="textMultiLine" android:lines="5" /> android:id="@+id/buttonSend" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="5dip" android:text="Send" />
       
      چیز خاص دیگه ای در xml نیستش که احتیاج به توضیح باشه
      خب.....
      در اکتیویتی create.java :

       
      txt_number = (EditText) findViewById(R.id.editTextPhoneNo); txt_text = (EditText) findViewById(R.id.editTextSMS); btn_send = (Button) findViewById(R.id.buttonSend); btn_send.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String phoneNo = txt_number.getText().toString(); String sms = txt_text.getText().toString(); try { SmsManager smsmanager = SmsManager.getDefault(); smsmanager.sendTextMessage(phoneNo, null, sms, null, null); Toast.makeText(getApplicationContext(), "SMS Sent", 1) .show(); } catch (Exception e) { // TODO: handle exception Toast.makeText(getApplicationContext(), "SMS faild, please try again later!", Toast.LENGTH_LONG).show(); e.printStackTrace(); } } });  
      در این فایل فقط این دو خط :
       
      SmsManager smsmanager = SmsManager.getDefault(); smsmanager.sendTextMessage(phoneNo, null, sms, null, null );  
      مربوط به ارسال پیامک میباشد تا متن را به شماره مقصد بفرستد
  • فایل

×
×
  • اضافه کردن...