ClassCastException: com.android.internal.telephony.PhoneProxy - PullRequest
1 голос
/ 08 апреля 2010

Я новичок в Android.

Я программирую инструментальные тесты для SIM ToolKit (STK)

Мне нужно использовать CommandsInterface, который доступен только в интерфейсе PhoneBase. Если у меня есть телефон, я бы хотел использовать следующую строку:

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

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

Успешно скомпилировано, но выдает необработанное исключение (группа = 0x4001b188). Пожалуйста, посоветуйте, как преодолеть эту проблему. Заранее спасибо Миха

1 Ответ

2 голосов
/ 08 апреля 2010

Вы не можете использовать 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...