1 回答

TA貢獻1797條經(jīng)驗 獲得超6個贊
它編譯是因為你使用了反射:Object Method.invoke()。
反射在編譯時通常很好,但在運行時可能不太好。
在這里,您嘗試轉(zhuǎn)換的實例是在運行時Proxy,更準(zhǔn)確地說是嵌套類:com.android.internal.telephony.ITelephony.Stub.Proxy。
ITelephony您定義為嵌套類的接口MyApp.IncomingCallReceiver不是該類的實例Proxy。這是肯定的,因為它沒有擴展:
public static interface ITelephony {
boolean endCall();
void answerRingingCall();
void silenceRinger();
}
而類轉(zhuǎn)換異常。
我想這Proxy是生成的實現(xiàn)com.android.internal.telephony.ITelephony,所以您需要做的可能只是導(dǎo)入該類并轉(zhuǎn)換為此類:
import com.android.internal.telephony.ITelephony;
//..
telephonyService = (ITelephony) m.invoke(tm);
添加回答
舉報