目录
前言
添加一个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;
- }
- }
© 版权声明
学习一下