2010-04-08 4 views
0

Je suis débutant dans Android.ClassCastException: com.android.internal.telephony.PhoneProxy

Je suis Tests de Instrumentation PROGRAMMATION pour SIM ToolKit (STK)

je dois utiliser CommandsInterface qui est disponible uniquement dans PHONEBASE Interface. Une fois que j'ai un téléphone je voudrais utiliser la ligne suivante:

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

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

Il compilé avec succès, donne cependant exception uncaught (groupe = 0x4001b188) S'il vous plaît conseiller comment surmonter ce problème. Merci à l'avance Micha

Répondre

2

Vous ne pouvez pas utiliser directement PhoneBase parce qu'il est un interne dans Android et non visible dans le SDK. Vous pouvez vérifier votre msg d'exception en utilisant logcat.

à partir du code source:

/** 
* (<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} 
* 
*/ 

Je ne sais pas ce que mcm est, mais je suppose que vous pouvez obtenir cette information TelephonyManager. Vous pouvez le faire faire

Context.getSystemService(Context.TELEPHONY_SERVICE); 
+0

Merci Macarse pour votre rediffusion. Je n'ai trouvé aucun moyen d'utiliser le contexte TelephonyManager pour obtenir l'interface de commandes requise. Est-ce que cela signifie qu'il est privé pour PhoneApp seulement? –

+0

Ce que j'ai essayé d'expliquer, c'est que l'interface de commandes n'est pas disponible dans le SDK. Je suppose que vous voulez obtenir des informations du téléphone, alors vous devriez l'obtenir du TelephonyManager. – Macarse

+0

Macarse, Merci beaucoup. –

Questions connexes