1, 下载头文件
最新的android使用bluedroid蓝牙库。而研究的androhid使用的是bluez蓝牙库。到bluez下载了一个,里面的目录结构和文件都不一样。搜了半天,搜到android的bluez。
git clone https://android.googlesource.com/platform/external/bluetooth/bluez
2, 拷贝到ndk中
将下载下来的bluez\lib\bluetooth目录拷贝到ndk目录android-ndk-r10d\platforms\android-21\arch-xxx\usr\include\里面.
6个目录都拷,不然编不过去,忒坑了.
还要将android\src\system\core\include\cutils目录拷到ndk目录里面,与上面相同,6个都要拷。
在build.gradle中, ndk部分, 添加目标架构的filter
ndk {
moduleName "nativebt"
ldLibs "log", "z", "m" (???)
abiFilters "armeabi", "armeabi-v7a"
}
编译出来的目录就剩下两个armeabi, armeabi-v7a
对应ndk中使用到的include目录就只有一个了arch-arm.
编译通过.
下一步是链接libbluetooth.so库, 唉, 望天长叹, 我去哪里找一个.so库咧!
嗯, 将bluez源码下载下来一看, 所谓的libbluetooth.so只有4个源文件。 索性不找了, 将4个源文件一块拷到工程里, 一起编译, 过了!
bluetooth.c
hci.c
sdp.c
uuid.c