TelephonyDevController not yet created?

426
04 февраля 2017, 08:15

Здравствуйте, требуется помощь профессионала, так как эта задача чрезвычайно сложна.

Пытаюсь создать экземпляр класса com.android.internal.telephony.RIL. Закрытый API я добавил и все сделал правильно - фреймворк модема пропустил через dex2jar и добавил в используемые классы. Также открыл jar в jd-gui. Кстати, скорее всего фреймворк был модифицирован производетелем - Micromax. Вызвал статический метод TelephonyDevController.getModemCount() и получил возвращаемое значение - все работает. Вообще задача следующая:

Существует интерфейс com.android.internal.telephony.IccCard с методом boolean getIccLockEnabled(). Существует класс, его реализующий - com.android.internal.telephony.uicc.IccCardProxy. Я хочу вызвать его метод getIccLockEnabled. Чтобы создать экземпляр этого классa, в его конструктор требуется передать параметры android.content.Context, com.android.internal.telephony.CommandsInterface и int. Второй параметр является интерфейсом, а значит можно передать его сабкласс, а именно, com.android.internal.telephony.RIL. Чтобы создать экземпляр RIL, в его конструктор требуется передать контекст и два int. Но вот при создании RIL-а приложение вылетает с логом TelephonyDevController not yet created!?!.

Вот конструктор классa RIL

    public RIL(Context paramContext, int paramInt1, int paramInt2, Integer paramInteger)
  {
    super(paramContext);
    riljLog("RIL(context, preferredNetworkType=" + paramInt1 + " cdmaSubscription=" + paramInt2 + ")");
    this.mContext = paramContext;
    this.mCdmaSubscription = paramInt2;
    this.mPreferredNetworkType = paramInt1;
    this.mPhoneType = 0;
    this.mInstanceId = paramInteger;
    this.mWakeLock = ((PowerManager)paramContext.getSystemService("power")).newWakeLock(1, "RILJ");
    this.mWakeLock.setReferenceCounted(false);
    this.mWakeLockTimeout = SystemProperties.getInt("ro.ril.wake_lock_timeout", 60000);
    this.mWakeLockCount = 0;
    this.mSenderThread = new HandlerThread("RILSender" + this.mInstanceId);
    this.mSenderThread.start();
    this.mSender = new RILSender(this.mSenderThread.getLooper());
    if (!((ConnectivityManager)paramContext.getSystemService("connectivity")).isNetworkSupported(0)) {
      riljLog("Not starting RILReceiver: wifi-only");
    }
    for (;;)
    {
      TelephonyDevController.getInstance();
      TelephonyDevController.registerRIL(this);
      return;
      riljLog("Starting RILReceiver" + this.mInstanceId);
      this.mReceiver = createRILReceiver();
      this.mReceiverThread = new Thread(this.mReceiver, "RILReceiver" + this.mInstanceId);
      this.mReceiverThread.start();
      paramContext = (DisplayManager)paramContext.getSystemService("display");
      this.mDefaultDisplay = paramContext.getDisplay(0);
      paramContext.registerDisplayListener(this.mDisplayListener, null);
    }
    }

И методы класса TelephonyDevController - create() и getInstance()

    public static TelephonyDevController create()
  {
    synchronized (mLock)
    {
      if (sTelephonyDevController != null) {
        throw new RuntimeException("TelephonyDevController already created!?!");
      }
    }
    sTelephonyDevController = new TelephonyDevController();
    TelephonyDevController localTelephonyDevController = sTelephonyDevController;
    return localTelephonyDevController;
  }
  public static TelephonyDevController getInstance()
  {
    synchronized (mLock)
    {
      if (sTelephonyDevController == null) {
        throw new RuntimeException("TelephonyDevController not yet created!?!");
      }
    }
    TelephonyDevController localTelephonyDevController = sTelephonyDevController;
    return localTelephonyDevController;
      }
READ ALSO
Как узнать установлен ли WhatsApp?

Как узнать установлен ли WhatsApp?

Как узнать установлен ли на телефоне WhatsApp не вызывая startActivity?

723
HashCode у класса String в Java

HashCode у класса String в Java

Разбирался я тут со строками и на одном ресурсе прочитал следующий тезис:

424
Java Regex не находит группы

Java Regex не находит группы

Имею такой паттерн:

362
Как адекватно работать с Hibernate

Как адекватно работать с Hibernate

Приветствую, собственно в чем моя проблемаНикак не могу адекватно заставить работать Hibernate

441