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

ارسال و دریافت ussd دربرنامه به صورت نامحسوس


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

سلام

من قصد ارسال کدهای Ussd و دریافت جواب داخل برنامه دارم بدون اینکه هیچ انعکاسی در خارج از برنامه داشته باشد (یعنی waiting گوشی نمایش داده نشود)

به عبارت دیگر کاربر برنامه متوجه نشود که این ارسال انجام شده است.

چیکار کنم؟

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

ussd یه پرتکل امنیتی هستش و کاربر همیشه در جربان هستش

 

آیا برنامه ای دیده اید که اینکار رو تونسته باشه انجام بده؟

 

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

با تشکر

ولی در ارسال و دریافت پیامک هیچ کدام از صفحات اصلی گوشی  نمی آید.

ضمنا نرم افزارهای بانکی اکثرا با ussd کار می کنند و هیچ کدام مشکلی ندارند.

در اینجا یعنی Ussd ، هم مشکل یک لحظه سوییچ شدن به صفحه شماره گیر و برگشت به برنامه هست

البته  نوار چرخان انتظار هم هست اگه بشه اینها نیاد فکر کنم مشکل حله

 

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

نرم افزار های بانکی دسترسی های بانکی خاصی دارند و بانک مرکزی این امکان رو بهشون میده.

این کتابخونه رو یک بررسی کنید

https://github.com/alaasalman/ussdinterceptor

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

من طبق تحقیق از آی تی بانکها ظاهرا بانکها از سیستم ussd بهره می برند من لینک شما را دیدم ولی نتوانستم سردربیارم.

بازهم سعی میکنم ببینم این لینک میتونه کمک کنه یا نه .

اگر شما هم لطف کنید یک برنامه کوچک برپایه این کتابخانه برایم مهیا کنید ممنون میشوم

با تشکر

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

دوست عزیز این کاری که شما می خوای فک کنم امکان پذیر نیست،شما برنامه همراه اول رو نگاه کنی میفهمی که حتی اونام اینکار رو نکردن یا نتونستن انجام بدن 

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

سلام

یک اصطلاحی داریم میگه "توی برنامه نویسی کار نشدنی نداریم"

ما هم هدفمان کارهایی است که خیلی ها نتونستن انجام بدهند انجام بدهیم.

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

شما درست میگید هرکاری امکان پذیره و نشد نداریم :blush:

اما بعضی شرایط رو هم باید در نظر گرفت برای بعضی کارها باید مجوز دسترسی به منابع خاصی را باید داشته باشید که بتوانید یک کار را انجام دهید. بطور مثلا هنوز تو ایران بجز نرم افزارهای بانکی مجوز پرداخت موبایلی را ندارند(بانک مرکزی این مجوز را صادر نکرده است) و تمامی اپ ها مجبورند از مرورگر برای پرداخت های خود استفاده کنند. یعنی اینکه یک راه دوم برای حل مشکل خود انتخاب کرده اند.

 

 

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

نرم افزار های بانکی دسترسی های بانکی خاصی دارند و بانک مرکزی این امکان رو بهشون میده ?!??

یعنی اینکه نامحسوس کد ussd اجرا بشه ربط داره به مجوز از بانک مرکزی ؟؟!

دوست عزیز فکر کنم خودتم متوجه شده باشی که اینجا به جواب درست حسابی نمیرسی ، پیشنهاد من سرچ تو سایت های خارجیه مطمئن باش به نتیجه میرسی

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

این کد رو یه  بررسی کنید:

 

 sendBroadcast(new Intent("android.provider.Telephony.SECRET_CODE",
                            Uri.parse("android_secret_code://" + "1234")));

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در 20 دقیقه قبل، ehsanbkh گفته است :

نرم افزار های بانکی دسترسی های بانکی خاصی دارند و بانک مرکزی این امکان رو بهشون میده ?!??

یعنی اینکه نامحسوس کد ussd اجرا بشه ربط داره به مجوز از بانک مرکزی ؟؟!

دوست عزیز فکر کنم خودتم متوجه شده باشی که اینجا به جواب درست حسابی نمیرسی ، پیشنهاد من سرچ تو سایت های خارجیه مطمئن باش به نتیجه میرسی

آیا شما برنامه بانکی خاصی انجام داده اید که پرداخت موبایلی را پیاده سازی کرده باشید؟

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

سلام

 

شما باید کدussd  رو بدون  intent  اجرا  کنید تا زمانی که شما  با intent  ها  این کد رو اجرا میکیند اون هم به کاربر نمایش داده میشود  چون دارید  از دیال گوشی   استفاده میکنید در غییر این صورت  به هیچ  وجه  شما نمیتوانید  اون رو از کاربر مخفی کنید

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

سلام دوست عزیز به آدرس پایین یه سر بزن شاید بدردت خورد

http://stackoverflow.com/questions/21489143/run-ussd-code-in-android-without-using-intent-action-call

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

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

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

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

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

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

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

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

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

  • مطالب مشابه

    • توسط meysamSM
      سلام
      من یه کد ussd دارم و در کنارش هم یک اپلیکشن اندروید
      این اپکلیشن کل کارش اینکه درخواستی رو برای سرور ارسال میکنه (مثلا موضوع درخواست (همه از قبل آماده هستن و بصورت دراپ دان یا اسپینر هستن) و گروه و نام کارشناس )
      حالا میخوام برای اینکه کاربر راحتتر کارش رو انجام بده بهش ussd کد بدم و بگم وقتی شما چنین کدی رو زدی چنین درخواست ارسال میشه برای مثال : از توی اپ من میخوام چنین درخواستی رو بدم: مشکل نرم افزار فلان و گروه نرم افزار و کارشانس فلانی
      توی ussd کد چنین اتفاقی بی افته
      *1234*5*12*105#
      1234 کدی که تهیه کردم
      5 مشکل نرم افزار فلان
      12 گروه نرم افزار
      105 ای دی کارشانس
       
      زمانی که کاربر چنین کدی رو زد برنامه باز بشه و بنویسه درخواست شما ارسال شد
      همین!
      درحال حاضر کل این کارهارو میشه انجام داد ولی باز کرد یک اپ با ussd رو نمیدونم چون از هرکس سوال میپرسم یا میگن باید گوشی روت باشه یا این کار غیرقابل انجام ولی یک بار یه نمونه اپ رو این شکلی دیدم
      تشکر
    • توسط dihanu
      سلام
      کسی میدونه چطور باید کدی بزنیم که با intent از ussd استفاده کنیم؟
      توضیح اینکه ussd همون کدهایی مثل *141*1# هست. و استادمون ازمون خواسته برنامه ای بنویسیم که باهاش شارژ بخریم
    • توسط 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]
  • فایل

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