加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

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);  
    }  
}  
 

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读