ClassCastException:com.android.internal.telephony.PhoneProxy

时间:2010-04-08 13:36:43

标签: android

我是Android的新手。

我正在编写SIM ToolKit(STK)的仪器测试

我需要使用仅在PhoneBase接口中可用的CommandsInterface。 一旦我有了手机,我想使用以下一行:

private Phone   mPhone;
private Context    mContext;
private Handler    mHandler;
private CommandsInterface            mCmdIf;
private PhoneBase    mPhoneBase;

mPhoneBase = ((PhoneBase)mPhone);  <==== uncaught exception 
mCmdIf = mPhoneBase.mCM;

它编译成功,但是给出了未捕获的异常(group = 0x4001b188) 请告知如何克服这个问题。 提前致谢 米莎

1 个答案:

答案 0 :(得分:2)

您不能直接使用PhoneBase,因为它是Android中的内部版,在SDK中不可见。您可以使用logcat检查异常消息。

来自源代码:

/**
 * (<em>Not for SDK use</em>) 
 * A base implementation for the com.android.internal.telephony.Phone interface.
 * 
 * Note that implementations of Phone.java are expected to be used
 * from a single application thread. This should be the same thread that
 * originally called PhoneFactory to obtain the interface.
 *
 *  {@hide}
 *
 */

我不知道mCM是什么,但我想你可以从TelephonyManager获得这些信息。你可以做到这一点

Context.getSystemService(Context.TELEPHONY_SERVICE);