android - 如何使用 com.android.internal.telephony.Phone(内部 API)

标签 android api internal

我正在尝试使用内部 API 来获取一些低级网络信息(GSM 电话的 Ec/Io、RSSI 和 RSCP),我能够导入这些 API,特别是,我想使用 com. android.internal.telephony.Phone 和 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

source code 中所述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;
}

已经有人尝试成功使用 Phone 类了吗?

最佳答案

sdk 不支持这个,甚至官方不推荐这个,然而,you can do this by reflection .

风险在于框架中的任何更改都会破坏您的代码。

关于android - 如何使用 com.android.internal.telephony.Phone(内部 API),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7992291/

相关文章:

安卓 Espresso : How do I test a specific Fragment when following one activity to several fragment architecture

android - 我收到错误 "cannot find symbol variable fragment"

android - 在 Android API 10 中实现横向导航

Android 在内存问题中创建文件夹

android - 如何将 toast 返回给在 EditText 上键入的任何内容,但特定单词除外?

java - Android 日历获取年份

api - 如何在Golang中从服务器发送Websocket

javascript - 使用 jQuery getJSON 进行简单的 API 调用

java - 如何获取内部IP地址?

c# - 内部并在私有(private) api 中受到保护