无法转换为com.package.name.ITelephony

时间:2019-03-28 04:41:01

标签: android telephonymanager

在某些情况下,我已在应用中使用PhoneStateReceiver进行挂断,但在挂断电话时遇到错误。

catch:java.lang.ClassCastException: com.android.internal.telephony.ITelephony$Stub$Proxy cannot be cast to com.package.name.ITelephony

我已经在主软件包中添加了ITelephony.aidl文件,但仍然存在相同的问题。 这是我的电话挂断代码。

TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
                try {
                    Class c = Class.forName(tm.getClass().getName());
                    Method m = c.getDeclaredMethod("getITelephony");
                    m.setAccessible(true);
                    com.callassistant.system.ITelephony telephonyService = (com.callassistant.system.ITelephony) m.invoke(tm);
                    Bundle bundle = intent.getExtras();
                    String phoneNumber = bundle.getString("incoming_number");
                    Log.d("INCOMING", phoneNumber);
                    System.out.println("Incoming number Hangup:"+phoneNumber);
                    if ((phoneNumber != null)) {
                        telephonyService.endCall();
                        Log.d("HANG UP", phoneNumber);

                    }

                } catch (Exception e) {
                    e.printStackTrace();
                    System.out.println("Incoming number Hangup catch:"+e);
                }

0 个答案:

没有答案