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" (???)android
abiFilters "armeabi", "armeabi-v7a"
}
git
編譯出來的目錄就剩下兩個armeabi, armeabi-v7a
對應ndk中使用到的include目錄就只有一個了arch-arm.
編譯經過.
下一步是連接libbluetooth.so庫, 唉, 望天長嘆, 我去哪裏找一個.so庫咧!
嗯, 將bluez源碼下載下來一看, 所謂的libbluetooth.so只有4個源文件。 索性不找了, 將4個源文件一塊拷到工程裏, 一塊兒編譯, 過了!
bluetooth.c
hci.c
sdp.c
uuid.c
架構