首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

蓝牙工场模式调试

2012-08-22 
蓝牙工厂模式调试高通qrd方案一站式服务,蓝牙模块配合好相关主板配电即可以正常工作了。不过由于之前工厂测

蓝牙工厂模式调试

高通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.ty_dmsg=1

           start bttest_enable

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

oneshot

     在服务退出后不重启。

disabled

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

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

热点排行