Как использовать com.android.internal.telephony.Phone (внутренний API) - PullRequest
1 голос
/ 03 ноября 2011

Я пытаюсь использовать внутренние API для получения информации о сети низкого уровня (Ec / Io, RSSI и RSCP для телефона GSM), мне удалось импортировать эти API и, в частности, я хотел бы использовать com.android.internal.telephony.Phone and com.android.internal.telephony.PhoneFactory.Но когда я пытаюсь использовать PhoneFactory следующим образом:

Phone mPhone;
Phone localPhone = PhoneFactory.getDefaultPhone ();
this.mPhone = localPhone;

Я получаю следующее исключение:

java.lang.RuntimeException: PhoneFactory.getDefaultPhone Must Be Called from Looper thread

, как описано в исходном коде Android PhoneFactory.java:

public static getDefaultPhone Phone () {
     if (sLooper! Looper.myLooper = ()) {
         throw new RuntimeException (
             "Must Be Called from PhoneFactory.getDefaultPhone Looper thread");
     }

     if (! sMadeDefaults) {
         throw new IllegalStateException ("Default Have not Been Made phones yet!");
     }
     sProxyPhone return;
}

Кто-то уже пытался использоватьТелефон класса с успехом?

1 Ответ

2 голосов
/ 03 ноября 2011

SDK не поддерживает это или даже рекомендует официально, однако, вы можете сделать это с помощью отражения .

Риск состоит в том, что любое изменение в фреймворке нарушит ваш код.

...