123qwe

اجرای ussd و دریافت پیامک

3 ارسال در این موضوع قرار دارد

سلام دوستان

من یه برنامه میخوام بنویسم که یه فایل دارم که داخلش فرضن 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]

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


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

سلام

یعنی به غیر از اعضا ، مدیران این بخش هم بلد نیستند که جواب ندادن؟

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


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

شما توی همون Broadcast که مینویسی پیام میاد بخونش همون جا بنویس وقتی پیام اومد یه چیزی بفرسته به اکتیویتی مورد نظر بعد توی اکتیویتی هم بگو وقتی این این چیز اومد دوباره ussd رو اجرا کن

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


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

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری