5、其中用到的IServicePlayer.aidl,放在和Java文件相同的包中,内容如下:
java代码:package eoe.demo;
interface IServicePlayer{
void play();
void pause();
void stop();
int getDuration();
int getCurrentPosition();
void seekTo(int current);
boolean setLoop(boolean loop);
}
一旦你写好了这个IServicePlayer.aidl文件,ADT会自动帮你在gen目录下生成IServicePlayer.java文件
6、MusicService.java的内容如下:
java代码:
package eoe.demo;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
public class MusicService extends Service {
String tag = "yao";
public static MediaPlayer mPlayer;
public boolean isPause = false;
IServicePlayer.Stub stub = new IServicePlayer.Stub() {
@Override
public void play() throws RemoteException {
mPlayer.start();
}
@Override
public void pause() throws RemoteException {
mPlayer.pause();
}
@Override
public void stop() throws RemoteException {
mPlayer.stop();
}
@Override
public int getDuration() throws RemoteException {
return mPlayer.getDuration();
}
@Override
public int getCurrentPosition() throws RemoteException {
return mPlayer.getCurrentPosition();
}
@Override
public void seekTo(int current) throws RemoteException {
mPlayer.seekTo(current);
}
@Override
public boolean setLoop(boolean loop) throws RemoteException {
return false;
}
};
@Override
public void onCreate() {
Log.i(tag, "MusicService onCreate()");
mPlayer = MediaPlayer.create(getApplicationContext(), ElfPlayerUtil.getFileinSD("wind.mp3"));
}
@Override
public IBinder onBind(Intent intent) {
return stub;
}
}
7、效果图:
分享到:
相关推荐
本示例"一个及其简单的AIDL远程Service调用"展示了如何通过AIDL在客户端(TestAidlClient)与服务端(TestAidlService)之间建立通信,实现远程调用。 首先,我们需要理解Service的基本概念。在Android中,Service...
当一个服务端应用通过AIDL定义接口后,Android系统会自动生成对应的Binder类,使得服务端和客户端能够通过这个 Binder 进行数据传输和方法调用。 1. **AIDL定义**: 在创建AIDL文件时,你需要声明接口以及接口中的...
下面将详细解释如何使用AIDL进行远程方法调用,并结合提供的"aidlClient.rar"和"aidlService.rar"文件中的示例来解析这个过程。 1. **AIDL基础**: AIDL文件本质上是接口定义,类似于Java的接口,但包含了特殊的...
本实例将详细介绍如何在Android中实现远程Service调用,主要涉及AIDL(Android Interface Definition Language)以及Parcelable接口的使用。 **1. Android远程Service** 远程Service是Android系统中实现不同应用...
AIDL(Android Interface Definition Language)是Android系统提供的一种接口定义语言,用于在不同进程间进行通信,特别是当服务(Service)需要与客户端(如Activity)跨进程交互时。AIDL帮助开发者定义接口,使得...
在"AIDLService,远程调用例子"这个项目中,我们将深入理解AIDLService的工作原理,通过服务端和客户端两个工程文件的实践,来探讨如何实现这种跨进程的通信。 **一、AIDL的基本概念** AIDL是Android特有的接口定义...
以上就是Android AIDL远程服务的基本概念和实现步骤。在这个例子中,`RemoteServerStop`可能是服务端停止服务的相关代码,而`ClientStop`可能涉及客户端解除服务绑定的操作。在实际开发中,我们需要根据具体需求来...
本示例"AIDLService"包含服务端与客户端两个工程文件,提供了关于如何使用AIDL进行远程服务调用的实践教程。 一、AIDL基础 AIDL文件本质上是定义了一个接口,该接口包含了客户端和服务端之间可以交互的方法。AIDL...
**Android Interface Definition Language (AIDL) 远程调用实例详解** 在Android系统中,当一个应用程序需要与另一个运行在不同进程或者不同设备上的应用程序进行交互时,就需要使用到远程通信技术。Android提供了...
本示例通过"AidlService"和"AidlClient"两个应用展示了如何利用.aidl进行远程调用,实现不同应用间的交互。 首先,我们来看服务端(Service)部分——`AidlService`。在这个项目中,`AidlService`会声明一个公开的...
本篇文章将深入探讨如何使用AIDL调用远程服务,以及在实际应用中的操作步骤。 首先,我们需要理解AIDL的基本概念。AIDL是一种接口定义语言,它允许我们定义在不同进程间通信的接口。这些接口可以包含方法声明,参数...
本压缩包"安卓AIDL相关-AIDLService远程调用例子"提供了一个服务端(Server)与客户端(Client)的示例,帮助开发者理解并掌握AIDL的使用。 首先,我们需要了解AIDL的基本概念。AIDL文件本质上是定义了一组接口,...
本篇将深入探讨如何通过AIDL来调用Service,并进而启动Activity,以及相关的源码分析和工具使用。 首先,理解AIDL的基本概念是必要的。AIDL定义了一种接口,这个接口可以被多个进程共享,允许一个进程(如Service)...
本文将深入探讨如何利用Android Interface Definition Language (AIDL) 和远程服务(Remote Service)来实现进程间的通信。AIDL是Android提供的一种接口定义语言,用于生成允许不同进程间进行方法调用的代码。 **...
当我们编写一个.aidl文件时,Android编译器会自动生成对应的Java接口和Stub类,这些类实现了跨进程通信的必要逻辑。 例如,假设我们有一个简单的`IService.aidl`文件: ```aidl interface IService { void send...
总结来说,“android aidl service”这个示例项目展示了如何使用AIDL进行进程间通信,包括定义接口、实现接口、服务的绑定和客户端的调用。通过学习和实践这个项目,开发者可以更好地理解和掌握Android系统的跨进程...
在Android系统中,AIDL(Android Interface Definition Language)是一种接口定义语言,用于实现不同进程间的通信,即远程进程通讯。AIDL使得服务(Service)和活动(Activity)这两个独立的APK之间能够相互通信,...
2. 编译和生成Java代码:Android Studio会自动编译AIDL文件,并在对应的Java包下生成两个Java类:`IMyBinderService.Stub`和`IMyBinderServiceProxy`。`Stub`类是服务端使用的Binder对象,而`IMyBinderServiceProxy`...