Android默认没有提供挂断/接听电话的api,需要伪装com/android/internal/telephony/ITelephony.aidl的接口来欺骗系统。而自动重复拨号可以通过(BroadcastReceiver)监听电话状态(android.intent.action.PHONE_STATE)来实现。
<strong>1、Android挂断和接听电话的接口</strong>
<code lang='java' width='auto' height='auto'>
public static void endCall(Context cx) { //挂断电话
TelephonyManager telMag = (TelephonyManager) cx
.getSystemService(Context.TELEPHONY_SERVICE);
Class<TelephonyManager> c = TelephonyManager.class;
Method mthEndCall = null;
try {
mthEndCall = c.getDeclaredMethod("getITelephony", (Class[]) null);
mthEndCall.setAccessible(true);
ITelephony iTel = (ITelephony) mthEndCall.invoke(telMag,
(Object[]) null);
iTel.endCall();
} catch (Exception e) {
e.printStackTrace();
}
}
原文:Android(AIDL)自动重复拨号及挂断/接听电话 | http://orgcent.com/android-aidl-call-end-phone/
分享到:
相关推荐
总结来说,AIDL是Android进程间通信的关键技术,它使得服务端可以提供跨进程调用的接口,而“EndCall”和“AIDLService”则是具体应用场景的实例,分别展示了如何使用AIDL创建服务以及如何实现挂断电话的功能。...
在Android应用开发中,Service和AIDL(Android Interface Definition Language)是两个重要的组件。Service用于在后台执行长时间运行的任务,而AIDL则用于进程间通信(IPC, Inter-Process Communication)。下面将...
当一个客户端尝试调用服务中的AIDL接口方法时,Android系统会自动处理以下过程: - 编译AIDL文件:Android编译器会将AIDL文件转换为对应的Java接口和辅助类。 - 创建Stub:服务端会生成一个实现了该接口的Stub代理类...
2. **编译AIDL**:Android Studio会自动编译`.aidl`文件,生成对应的Java接口。这个接口将作为客户端和服务端通信的桥梁。 3. **实现服务端**:在WPS应用中,你需要实现`IMOfficeService`接口,并注册到Android系统...
总的来说,Android的AIDL使得应用程序能够轻松地进行进程间通信,而挂断电话的功能则需要结合权限管理,确保用户有权限执行此类操作。通过理解AIDL的工作原理和正确使用,开发者可以构建出功能强大的跨进程交互应用...
Android AIDL(Android Interface Definition Language)是Android系统提供的一种接口定义语言,用于实现不同应用程序进程间的通信(IPC,Inter-Process Communication)。AIDL允许我们定义服务和服务客户端之间交互...
Android Aidl(Android Interface Definition Language)是Android提供的一种强大的IPC机制,它允许两个不同进程之间的服务进行接口调用,实现了类似远程方法调用(RPC,Remote Procedure Call)的效果。下面将详细...
在Android应用开发中,AIDL(Android Interface Definition Language)是一种强大的工具,用于实现跨进程通信(IPC,Inter-Process Communication)。当我们需要在一个Activity中调用另一个进程中服务的方法时,AIDL...
当我们编写一个.aidl文件时,Android编译器会自动生成对应的Java接口和Stub类,这些类实现了跨进程通信的必要逻辑。 例如,假设我们有一个简单的`IService.aidl`文件: ```aidl interface IService { void send...
在目录src/main 下新建了aidl 文件夹之后,在aidl文件夹中也创建了相同的包路径, 创建AIDL文件 XXX.aidl 如果XXX.aidl引用了一个java下的model例如引用了a.b.c.Model; 则需要在XXX.aidl文件中声明import a.b.c....
Android AIDL(Android Interface Definition Language)是Android系统中用于实现进程间通信(IPC,Inter-Process Communication)的一种机制。在Android应用开发中,当需要在不同进程之间共享数据或调用服务时,...
Android Studio会自动根据AIDL文件生成对应的Java接口和辅助类。在编译后,你会在`gen/com/example/AidlDemo`目录下看到这些生成的文件。 4. **在服务中实现AIDL接口**: 在`MyService`类中,实现`IMyInterface`...
在Android系统中,AIDL(Android Interface Definition Language)是一种用于实现进程间通信(Inter-Process Communication, IPC)的工具。AIDL使得不同进程间的组件能够相互通信,即便它们运行在不同的应用程序或...
2. **生成Binder类**:当构建项目时,Android编译器会自动生成对应的Java binder类,位于`build/generated/source/aidl/release/com/example/AIDLTest`目录下。这个类实现了接口,并处理了跨进程通信的细节。 3. **...
在Android系统中,AIDL(Android Interface Definition Language)是一种接口定义语言,用于实现不同进程间的通信,即远程进程通讯。AIDL使得服务(Service)和活动(Activity)这两个独立的APK之间能够相互通信,...
**Android Interface Definition Language (AIDL) 入门指南** 在Android开发中,有时我们需要在不同的应用程序组件之间进行进程间通信(IPC,Inter-Process Communication)。这时,Android Interface Definition ...
而Android Interface Definition Language(AIDL)是Google提供的一种用于处理进程间通信的语言,它允许应用程序之间透明地交换数据。当我们需要在不同的应用之间传递复杂的对象时,AIDL就显得尤为重要。本文将深入...
在Android开发中,AIDL(Android Interface Definition Language)是一种用于进程间通信(Inter-Process Communication, IPC)的工具,使得不同应用之间的服务可以共享数据和功能。本示例"android AidlDemo(简单aidl...
2. **编译AIDL**:Android Studio会自动生成对应的Java代码,位于`gen`目录下(或者在现代版本中是`build/generated/source/aidl`)。这个生成的类定义了服务端和客户端交互的 Binder 对象。 3. **实现服务端接口**...
当编译AIDL文件时,Android编译器会自动生成相应的Java代码,这些代码实现了跨进程通信所需的代理类和Stub类。客户端通过代理类与服务端的Stub类进行交互,实现数据传递和方法调用。 1. **客户端**:调用代理类的...