Android 13framework中添加AIDL

Android  小知识  2024年4月8日 pm7:30发布8个月前更新 城堡大人
69 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、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

1 条评论

  • 改变自己
    改变自己 游客

    学习一下

    回复

随机推荐

You must not call setTag() on a view Glide is targeting

前言记录一下,在使用Glide 老的版本(相对于4之前的)出现如下一下,记录于此,方便自己查阅。正文异常日志:AndroidRuntime( 4299): FATAL EXCEPTION: mainAndroidRuntime( 4299): Process: com.biumall.v...

朱光潜:读书不在多,在于选得精,读得彻底

十几年前我曾经写过一篇短文谈读书,这问题实在是谈不尽,而且这些年来我的见解也有些变迁,现在再就这问题谈一回,趁便把上次谈学问有未尽的话略加补充。学问不只是读书,而读书究竟是学问的一个重要途径。因为学问不仅是个人的事而是全人类的事,每科学问到了现在的阶段,是全人类分途努力日积月累所得到的成就,而这成...

Android Studio快捷键记录

在使用编译器时,很多人喜欢改变编译器的一些快捷键以便适应以前的习惯(以前我也是这样,后来发现换电脑或者环境后得耗时间重新配置,麻烦),但个人觉得不太好.如果编译器崩溃了或者换电脑了,您又得重新设置一遍...当然,萝卜青菜,各有所爱.只要自己喜欢怎样折腾都是好的!当然,Android Studio...

林徽因:一片阳光

放了假,春初的日子松弛下来。将午未午时候的阳光,澄黄的一片,由窗棂横浸到室内,晶莹地四处射。我有点发怔,习惯地在沉寂中惊讶我的周围。我望着太阳那湛明的体质,像要辨别它那交织绚烂的色泽,追逐它那不着痕迹的流动。看它洁净地映到书桌上时,我感到桌面上平铺着一种恬静,一种精神上的豪兴,情趣上的闲逸;即或所谓...

Android跳转WIFI界面的几种方式

前言简单记录一下Android跳转WiFi设置界面的启动方式。PS: 本文摘抄的,方便自己查阅。正文下面几种方式在Android P上测试OK。第一种try { Intent intent = new Intent(); intent.setAction("androi...

贾平凹:喝酒

我在城里工作后,父亲便没有来过,他从学校退休在家,一直照管着我的小女儿。从来我的作品没有给他寄过,姨前年来,问我是不是写过一个中篇,说父亲听别人说过,曾去县上几个书店、邮局跑了半天去买,但没有买到。我听了很伤感,以后写了东西,就寄他一份,他每每又寄还给我,上边用笔批了密密麻麻的字。给我的信上说,他很...