蓝牙工厂模式调试

高通qrd方案一站式服务,蓝牙模块配合好相关主板配电即可以正常工作了。

不过由于之前工厂测试模式是之前项目架构好的,工厂测试模式需要满足jni调用相关的要求。

按照fae提供的函数,调用后无法进行工厂测试。主要是权限问题。与framework相关人员确认了下,是andorid系统安全,避免第三方应用调用到system中内核驱动权限。

因此,只能jni中启动服务,服务执行进入工厂模式的相关操作。

 

1.       服务

主要是在system目录外的文件夹中启动相关的服务项。选择在vendor目录下新立项目。

新文件夹下,android.mk控制模块生成。

LOCAL_SHARED_LIBRARIES:=libbluedroid

LOCAL_C_INCLUDES: =\

           $(LOCAL_PATH)/system/bluedroid/include \

           System/bluedtooth/bluez-clean-headers

LOCAL_C_INCLUDES +=\

$(call include-path-for, bluedroid)

 

         由于我的服务中需要用到system里面生成的库。这里就选择了libbluedroid.

之前我选择包含头文件时,有时候总是要写很长一个绝对路径,这里注意包括库的头文件LOCAL_C_INCLUDES +=$(call include-path-for, bluedroid)

系统能够自动找到服务中的include头文件。

 

然后介绍服务,就是调用bluedroid中的函数。

#includ <bluedroid/Bluetooth.h>

Int main()

{

Bt_disable();

}

2.       启动服务

系统提供了property_set(“ctl.start”,bttest_enable)启动服务。

或者采用触发条件

on property:persist.sys.ls_dmsg=1

           start bttest_enable

启动服务中需要注意服务的option

oneshot

     在服务退出后不重启。

disabled

     这个服务的级别将不会自动启动,它必须被依照服务名指定启动才可以启动。

作为受控的测试服务,新加的服务属性需要加上这两项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

newtonnl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值