Android aidl调用进程间服务的技巧
发布时间:2021-11-23 16:32:27 所属栏目:教程 来源:互联网
导读:我就拿最近做的项目来说明了,首先创建一个IFMService.aidl的接口文件,在R.java的目录下会自动生成IFMService.java 的文件, 接口文件的内容如下: package net.kindroid.fm; interface IFMService { /** * open FM */ boolean openFM(); /** * close FM */
我就拿最近做的项目来说明了,首先创建一个IFMService.aidl的接口文件,在R.java的目录下会自动生成IFMService.java 的文件, 接口文件的内容如下: package net.kindroid.fm; interface IFMService { /** * open FM */ boolean openFM(); /** * close FM */ boolean closeFM(); /** * whether FM is open */ boolean isOpen(); /** * set a special frequency to the FM */ int setCurrentFrequency(in int frequency); /** * search FM tunes */ boolean searchStation(in int start, in int direction, in int timeout, in int reserve); /** * get current Frequency */ int getCurrentFrequency(); /** * stop search FM */ boolean stopSearch(); /** * set FM volume */ boolean setVolume(in int value); /** * get current Volume */ int getCurrentVolume(); /** * set current mute mode */ int setMuteMode(in int mode); } public class FMService extends Service:实现如下: public class MyServiceimpl extends IFMService.Stub { WeakReference<FMService> mService; MyServiceimpl(FMService service) { mService = new WeakReference<FMService>(service); } @Override public boolean openFM() throws RemoteException { return mService.get().openFM(); } @Override public boolean closeFM() throws RemoteException { return mService.get().closeFM(); } @Override public boolean isOpen() throws RemoteException { return mService.get().isOpen(); } @Override public boolean searchStation(int start, int direction, int timeout, int reserve) throws RemoteException { return mService.get().searchStation(start, direction, timeout, reserve); } @Override public int getCurrentFrequency() throws RemoteException { return mService.get().getTunedFrequency(); } @Override public boolean stopSearch() throws RemoteException { return mService.get().stopSearch(); } @Override public boolean setVolume(int value) throws RemoteException { return mService.get().setVolume(value); } @Override public int getCurrentVolume() throws RemoteException { return mService.get().getCurrentVolume(); } @Override public int setMuteMode(int mode) throws RemoteException { return mService.get().setMuteMode(mode); } @Override public int setCurrentFrequency(int frequency) throws RemoteException { return mService.get().setCurrentFrequency(frequency); } } (编辑:济南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |