我已经创建了ITelephony AIDL文件作为Interface,如图所示。使用此代码时出现错误提示。
Class<?> loadClass = CallBlockerPhoneStateListner.class.getClassLoader().loadClass("android.os.ServiceManager");
Method method = loadClass.getDeclaredMethod("getService", String.class);
IBinder invoke = (IBinder) method.invoke(null, TELEPHONY_SERVICE);
ITelephony iTelephony = ITelephony.Stub.asInterface(invoke);
iTelephony.endCall();
引发错误:
06-21 11:31:26.977 17511-17511/? W/System.err: java.lang.SecurityException: Binder invocation to an incorrect interface
06-21 11:31:26.977 17511-17511/? W/System.err: at android.os.Parcel.readException(Parcel.java:2005)
06-21 11:31:26.977 17511-17511/? W/System.err: at android.os.Parcel.readException(Parcel.java:1951)
06-21 11:31:26.977 17511-17511/? W/System.err: at jss.s.ITelephony$Stub$Proxy.endCall(ITelephony.java:131)
您可以指导如何解决此问题吗?引用来自https://www.programcreek.com/java-api-examples/?code=384401056/itheima/itheima-master/MobileSafe/src/com/blueice/mobilesafe/service/BlackListService.java#
答案 0 :(得分:0)
packagename应该是com.android.internal.telephony,而不是aidl目录中的应用程序包名称。