最近在研究怎么在使用android4.0上的PAN User的Profile,经过Debug,终于完成了,发现网上关于BT的资料真的好少,因此分享给大家,共同进步:
PAN:Personal Area Networking Profile
PAN主要是实现蓝牙作为网络热点、网络接入点或者访问远程网络,即该Profile所拥有的角色包含NAP(Network Access Point)、GAP(Group Ad-hoc Network)和PANU(Personal Area Network User)。
大家可以在这个网站下载相关的profile文档和其他与BT相关的资料:点击打开链接
根据查找的资料,Android ICS支持的PAN角色是NAP和User,下面给大家讲一下怎样Enable PANU(默认是不可用的):
1.Android ICS/frameworks/base/core/res/res/value/config.xml(你的路径可能不是这个,因为有的可能是用覆盖的方式,替换原有的文件)
在以下两个属性值里添加下面两行,主要是Connecttivity会去check这个值
<string-array translatable="false" name="networkAttributes">
<item>"bluetooth,7,7,2,-1,true"</item>
</string-array>
<string-array translatable="false" name="radioAttributes">
<item>"7,1"</item>
</string-array>
2.Android ICS/system/core/rootdir/init.rc(同样你也可能是改其他地方,如:init.xxx.rc)
service dhcpcd_bnep0 /system/bin/dhcpcd -ABKL
disabled
oneshot
通过以上的修改,基本上PANU就可以使用了,不过我再使用的过程中遇到了一些问题,当我connect PANU的时候,启动的居然是dhcpd_wlan0,而不是我这里的bnep0,这里我先不说什么情况,因为大家的不一定会遇到,这个主要是我的code有问题,以后我会讲一下PANU的call path,方便大家Debug。