Chinaunix首页 | 论坛 | 博客
  • 博客访问: 328629
  • 博文数量: 41
  • 博客积分: 2540
  • 博客等级: 少校
  • 技术积分: 570
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-18 11:29
文章分类

全部博文(41)

文章存档

2011年(4)

2010年(32)

2009年(3)

2008年(2)

我的朋友

分类: LINUX

2010-02-24 16:12:09

Android中蓝牙是通过system/bluetooth/bluedroid/bluetooth.c启动的。在这个文件中主要的函数完成的功能为:
<1> 检查蓝牙电源状态,和打开蓝牙电源
<2> 启动蓝牙,其中调用了1
<3> 关闭蓝牙

电源的状态是通过rfkill文件状态来标示的。在我们的平台没有rfkill。 在文件中直接屏蔽掉和蓝牙电源相关的函数。 主要的函数就剩下 bt_enable 和 bt_disable了。 

在bt_enable中,首先使用property_set函数开启hciattach服务。然后HCIDEVUP,最后执行property_set函数开启hcid服务。

hciattach在init.rc中是没有的,手动添加 

service hciattach /system/bin/hciattach -n /dev/ttyS1 any 38400 flow
     user root
     disabled
     oneshot

注意: -n 这个选项很重要必须添加。否则,hciattach服务是不能启动的。

现在通过UI界面就可以启动蓝牙了
阅读(5036) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~