Перейти к содержанию
Fire Monkey от А до Я

Simons Cat

Пользователи
  • Постов

    2
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Simons Cat

  1. У меня среда программирования rad studio Delphi 10.4.2. Собственно ищу совета как отправить и получить ответ на запрос USSD.
    Нашел в интернете единственный пример более или менее который похож на правду.
    Привел его к виду нормальному виду, но не хватает знаний как передать функцию CallBack.

    procedure TForm7.Button6Click(Sender: TObject);
    var
    Temp:Jstring;
    ResponceCallBack: JTelephonyManager_UssdResponseCallback;
    handler: JHandler;
    begin
     
      TM :=TJTelephonyManager.Create;
      handler := TJHandler.Create;
      ResponceCallBack := TJTelephonyManager_UssdResponseCallback.Wrap( 
      TAndroidHelper.Context.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE));
     
     TM.sendUssdRequest(StringToJString('*100#'), ResponceCallBack,handler);
     
    end;

     

    На java делается вот так. Не знаю как этот код переделать в delphi.

    TelephonyManager =  telephonyManager(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
        Handler handler = new Handler();
        TelephonyManager.UssdResponseCallback callback = new TelephonyManager.UssdResponseCallback() {
            @Override
            public void onReceiveUssdResponse(TelephonyManager telephonyManager, String request, CharSequence response) {
                super.onReceiveUssdResponse(telephonyManager, request, response);
                Log.e("ussd",response.toString());
     
            }
     
            @Override
            public void onReceiveUssdResponseFailed(TelephonyManager telephonyManager, String request, int failureCode) {
                super.onReceiveUssdResponseFailed(telephonyManager, request, failureCode);
                Log.e("ussd","failed with code " + Integer.toString(failureCode));
            }
        };
     
        try {
               Log.e("ussd","trying to send ussd request");
               telephonyManager.sendUssdRequest("*123#",
                        callback,
                        handler);
            }catch (Exception e){
     
     
                String msg= e.getMessage();
                Log.e("DEBUG",e.toString());
                e.printStackTrace();
            }

     

×
×
  • Создать...