目录
前言
添加一个Service并让应用调用,类似于获取AudioManager一样。
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
通过getSystemService()获取XCarManager。
正文
这里只是简单展示,然后通过XCarManager进行修改和获取。
XCarManager xCarManager = (XCarManager) getSystemService(Context.BIU_CAR_SERVICE); if(null!=xCarManager){ //改变状态 xCarManager.setCarStatus("driving"); //设置状态 String carStatus = xCarManager.getCarStatus(); }
添加上下文常量
这个在Context.java中定义
\frameworks\base\core\java\android\content\Context.java
找个位置定义(可以参考AUDIO_SERVICE)
public static final String BIU_CAR_SERVICE = "biu_car";
添加到value
@StringDef(suffix = { "_SERVICE" }, value = { //略 BIU_CAR_SERVICE, }
创建aidl
创建AIDL文件,管理类和服务类等推荐AS中写好,然后复制进去,以免格式和导入包缺省问题。
在\frameworks\base\core\java\android中创建\biumall\car目录(仅供参考,看自己)
\frameworks\base\core\java\android\biumall\car
此时的包名为
android.biumall.car
创建IXCarStatus.aidl
// IXCarStatus.aidl package android.biumall.car; /** * @hide */ interface IXCarStatus { String getCarStatus(); void setCarStatus(String status); }
创建服务类
创建服务类XCarService.java
这里也放\frameworks\base\core\java\android\biumall\car中,主要是方便,也可以统一包名!
package android.biumall.car; import android.os.RemoteException; public class XCarService extends IXCarStatus.Stub { private String mStatus = ""; @Override public String getCarStatus() throws RemoteException { return mStatus; } @Override public void setCarStatus(String status) throws RemoteException { mStatus = status; } }
© 版权声明
学习一下