Android 13framework中添加AIDL

Android2024年4月8日 pm7:30发布5个月前更新 91es.com站长
23 1 0
目录

前言

添加一个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;
    }
}

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

 历史上的今天

  1. 2021: MediaPlayer异常(0条评论)
  2. 2020: 顾城:树枝的疏忽(0条评论)
  3. 2019: Android 6.0 Settings源码简单分析之蓝牙(2)(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com[备用域名]
3、 本站内容: 部分来源于网络,仅供站长学习和参考,若侵权请留言

1 条评论

  • 单词
    单词 游客

    学习一下

    广东省
    回复

随机推荐

顾城:远和近

​你一会看我一会看云 我觉得你看我时很远你看云时很近

席慕容:独白

1把向你借来的笔还给你吧。一切都发生在回首的刹那。我的彻悟如果是缘自一种迷乱,那么,我的种种迷乱不也就只是因为一种彻悟?在一回首间,才忽然发现,原来,我的一生的种种努力,不过只是为了周遭的人都对我满意而已。为了要博得他人的称许与微笑,我战战兢兢地将自己套入所有的模式,所有的桎梏。走到中途,...

ListView的item中当文本出现阿拉伯语时会显示怪异

前言测试反馈有些歌曲名字中如果存在阿拉伯语,列表显示时就出现显示右边怪异的问题。总所周知,阿拉伯语显示在右边的。比如עברית_xi bo lai yu.mp3العربية_a la bo yu.mp3فارسی_bo si yu.mp3显示如下 a la ...

余秀华:一潭水

这是我喜欢的时刻:黄昏深了一些,夜色尚浅我的灵魂如此清澈,在树叶上滚动一灯一影,我如此赤裸裸地活着,影子可以更长些留一部分供养阴影 的确有水从四面八方涌来,向四面八方散去我在水里小幅度地摇摆把一些词语光亮的部分挑在草尖上我喜欢被诗句围困,再呕心沥血找一条出路 ...

Zygote的启动之二ZygoteInit

前言Android系统中,所有的应用程序以及SystemServer都是由Zygote进程孕育(fork)出来的。接上文,上文介绍从Native世界进入了Java世界。而且java世界的大门就是ZygtoeInit.java。这次我们看ZygtoeInit中处理了哪些功能。Android P...

关闭jaudiotagger的输出日志

前言jaudiotagger.jar是一个非常好的ID3解析,支持多种音频格式解析,比如MP3、FLAC、WAV、M4A等几种。但是解析时会打印很多日志,记录一下,如何关闭日志打印。正文网上也有很多介绍,但效果一般,最后找到如下方式,一行代码关闭所有日志打印。隐藏内容!付费阅读后才能查看...