菠菜网站怎么做,百度反馈中心,东阿网站建设费用,o2o商城网站开发由于特殊需求#xff0c;需要在SystemUI中添加第三方AIDL#xff0c;去做一些客制化的修改。现在记录一下AIDL添加的过程。 1.将AIDL文件拷贝到frameworks/base/packages/SystemUI/src/下#xff0c;我要添加的AIDL文件是com/test/myctr/IDevicectr.aidl#xff0c;添加后的…由于特殊需求需要在SystemUI中添加第三方AIDL去做一些客制化的修改。现在记录一下AIDL添加的过程。 1.将AIDL文件拷贝到frameworks/base/packages/SystemUI/src/下我要添加的AIDL文件是com/test/myctr/IDevicectr.aidl添加后的路径是frameworks/base/packages/SystemUI/src/com/test/myctr/IDevicectr.aidl。 2.修改frameworks/base/packages/SystemUI/Android.bp将AIDL编译到apk里面。 android_library {name: SystemUI-core,defaults: [SystemUI_compose_defaults,],srcs: [src/**/*.kt,src/**/*.java,src/**/I*.aidl,src/com/test/myctr/IDevicectr.aidl,:ReleaseJavaFiles,],aidl: {local_include_dirs: [src/com/test/myctr,],},product_variables: {debuggable: {srcs: [:DebugJavaFiles],exclude_srcs: [:ReleaseJavaFiles],},},
3.在frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java中去绑定连接AIDL服务。首先导入AIDL的服务类import com.test.myctr.IDevicectr;。然后在SystemUIApplication.java中的onCreate()里面调用自定义的initserver()函数初始化服务。下面是初始化服务的函数实现 public void initserver(){//初始化服务Intent intent new Intent(new Intent(com.test.DevicectrServer));intent.setPackage(com.android.device_ctr);this.startService(intent);this.bindService(intent, new ServiceConnection(){Overridepublic void onServiceConnected(ComponentName name, IBinder service){apiserver IYFAPIserver.Stub.asInterface(service);int_flag true;setDevice();//调用AIDL接口初始化设备}Overridepublic void onServiceDisconnected(ComponentName name){int_flag false;}}, BIND_AUTO_CREATE);}
上面函数在连接到服务以后就可以去调用AIDL的接口去做操作了。