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

时间:2011-11-03 09:01:20

标签: android api internal

我正在尝试使用内部API来获取一些低级网络信息(用于GSM手机的Ec / Io,RSSI和RSCP),我能够导入这些API,特别是,我想使用com。 android.internal.telephony.Phone和com.android.internal.telephony.PhoneFactory。 但是当我尝试像这样使用PhoneFactory时:

  

手机mPhone;
  电话localPhone = PhoneFactory.getDefaultPhone();
  this.mPhone = localPhone;

我得到以下异常:

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

如Android PhoneFactory.java的source code中所述:

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 个答案:

答案 0 :(得分:2)

sdk不支持此功能,或者甚至正式推荐,you can do this by reflection

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