BT 协议调用流程
来源:互联网 发布:淘宝上的艾滋试纸 编辑:程序博客网 时间:2024/04/30 07:46
android 4.2后的BT协议由原来的bluze更换成了brodcom的协议,代码路径:
external/bluetooth/bluedroid/
该协议与android framework层是通过JNI来相互调用
android的大部份BT协议或功能都在Bluetooth.apk中实现
源码路径:packages/apps/Bluetooth
JNI的也在此实现,源文件是:
jni/com_android_bluetooth_btservice_AdapterService.cpp
同时该协议需要用户实现一个bt_vendor_interface_t接口
const bt_vendor_interface_t BLUETOOTH_VENDOR_LIB_INTERFACE = {
sizeof(bt_vendor_interface_t),
bt_vnd_init,
bt_vnd_op,
bt_vnd_cleanup,
};
libbt-vendor.so在协议初始化时被加载
external/bluetooth/bluedroid/hci/src/bt_hw.c
void init_vnd_if(unsigned char *local_bdaddr){ void *dlhandle; dlhandle = dlopen("libbt-vendor.so", RTLD_NOW); bt_vnd_if = (bt_vendor_interface_t *) dlsym(dlhandle, "BLUETOOTH_VENDOR_LIB_INTERFACE"); bt_vnd_if->init(&vnd_callbacks, local_bdaddr);}
我们可以由上看到,在bt_vendor_interface_t 初始化时实际上传入了一个参数 vnd_callbacks,其实在bt_vendor_interface_t最终还是通过vnd_callbacks来操作设备。
从external/bluetooth/bluedroid/hci/src/bt_hw.c中发现vnd_callbacks中所定义的接口进一步调用的接口有bt_hc_cbacks与p_hci_if,这两种接口都在
external/bluetooth/bluedroid/hci/src/bt_hci_bdroid.c中定义
- BT 协议调用流程
- BT 协议调用流程
- BT协议
- BT协议
- bt协议翻译
- bt协议翻译
- BT协议参考资料
- BT协议分析
- bt 协议及分析
- BT协议分析
- BT协议集合
- 转:BT协议分析
- BT DHT协议规范
- BT协议详解
- 1. BT协议
- BT协议各种消息
- BT协议简介
- BT协议分析
- 腾讯的微信平台开放
- 提示框第三方库之MBProgressHUD
- 初探Remoting双向通信(三)
- C#调用Quartz实例代码
- VPN
- BT 协议调用流程
- How to Disassemble/Assemble Galaxy S4 i9500 for Screen/Parts Repair!
- java中filter的用法
- php进一法取整、四舍五入取整、忽略小数等的取整数方法大全
- VC++6.0注释快捷键设置和显示代码行号
- 想念清秋萧瑟
- 从客户端 中检测到有潜在危险的 Request.Form 值。
- MFC中的 Document / View 结构的使用 <转载+自己总结,MFC中的MVC>
- 一文讲清楚Windows Mobile和Wince(Windows Embedded CE)的字符集问题