前言

添加一个Service并让应用调用,类似于获取AudioManager一样。

  1. AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
复制

通过getSystemService()获取XCarManager。

正文

这里只是简单展示,然后通过XCarManager进行修改和获取。

  1. XCarManager xCarManager = (XCarManager) getSystemService(Context.BIU_CAR_SERVICE);
  2. if(null!=xCarManager){
  3. //改变状态
  4. xCarManager.setCarStatus("driving");
  5. //设置状态
  6. String carStatus = xCarManager.getCarStatus();
  7. }
复制

添加上下文常量

这个在Context.java中定义

  1. \frameworks\base\core\java\android\content\Context.java
复制

找个位置定义(可以参考AUDIO_SERVICE)

  1. public static final String BIU_CAR_SERVICE = "biu_car";
复制

添加到value

  1. @StringDef(suffix = { "_SERVICE" }, value = {
  2. //略
  3. BIU_CAR_SERVICE,
  4. }
复制

创建aidl

创建AIDL文件,管理类和服务类等推荐AS中写好,然后复制进去,以免格式和导入包缺省问题。

在\frameworks\base\core\java\android中创建\biumall\car目录(仅供参考,看自己)

  1. \frameworks\base\core\java\android\biumall\car
复制

此时的包名为

  1. android.biumall.car
复制

创建IXCarStatus.aidl

  1. // IXCarStatus.aidl
  2. package android.biumall.car;
  3. /**
  4. * @hide
  5. */
  6. interface IXCarStatus {
  7.   String getCarStatus();
  8.   void setCarStatus(String status);
  9. }
复制

创建服务类

创建服务类XCarService.java

这里也放\frameworks\base\core\java\android\biumall\car中,主要是方便,也可以统一包名!

  1. package android.biumall.car;
  2. import android.os.RemoteException;
  3. public class XCarService extends IXCarStatus.Stub {
  4.   private String mStatus = "";
  5.   @Override
  6.   public String getCarStatus() throws RemoteException {
  7.       return mStatus;
  8.   }
  9.   @Override
  10.   public void setCarStatus(String status) throws RemoteException {
  11.       mStatus = status;
  12.   }
  13. }
复制

隐藏内容!
付费阅读后才能查看!
3
5
多个隐藏块只需支付一次

相关文章

1 条评论

  • 改变自己
    改变自己 游客

    学习一下

    回复