外部USB傳感器需要Android在插入時支持該設備。然後,您需要一根OTG電纜來反轉USB從設備/主設備。不用進入內核構建等...在Android設備上安裝一個終端應用程序,插入OTG和傳感器,然後運行dmesg以查看設備是否被檢測到並且加載了驅動程序。從那裏你必須弄清楚你的USB傳感器有什麼Linux支持,並且在一條路徑上工作以獲得對Android內核的支持。
如果你最終不得不建立一個新的內核,那麼你可能會完全轉向一個全新的ROM。 CyanogenMod提供完整的源代碼,構建腳本和維基從頭開始構建他們的ROM。一旦你安裝了新的ROM壓縮包,你可以安全地調整內核和安裝軟件。
Android內核足夠接近直接的Linux內核,只要傳感器驅動程序的源代碼可用,或者它的預編譯二進制文件,支持幾乎所有可用於Linux的內容都可以在android上工作可用。 (也稱爲專有斑點)
最後,假設您的設備帶有OTG電纜,並且似乎檢測到傳感器並且加載了驅動程序,則需要一些工具或應用程序才能真正使用傳感器。如果有可用的Linux工具可以實現您想要的功能,請查看它們是否有預編譯的ARM版本,或者如果源代碼可用,則必須使用Android NDK從源代碼編譯它們。
我爲什麼要麻煩解釋所有這些? Android在整體上超級不可靠。至少你還需要Android 5.1。 Google的原始藍牙堆棧是垃圾。 (藍牙包裝有各種各樣的問題,它在某些用途上工作正常,但總體上存在穩定性問題)您只需在非三星設備上使用心率監視器即可知道它不會保持連接時間超過10秒。三星在早期的設備中引入了自己的藍牙堆棧。我已經開發了使用帶有ECG閱讀器的心率監測器的身份驗證應用程序,均使用藍牙。一旦我的Nexus5設備升級到5.1,一切都穩定下來。 Google的藍牙問題衆所周知。只需Google android和藍牙堆棧實現。
除非您需要無線,否則有線將永遠更好。
你確實有一些替代的USB選項。
1)使用通過USB連接的Arduino或RPi。沒有特殊的Linux驅動程序或內核需要,但你需要中斷設備,它將不得不網關你的傳感器。例如傳感器 - > Arduino - > android。如果它是一個RPi,你將擁有4個USB端口和一個完整的Linux內核,但是根據你的需求,電源將成爲一個問題。這裏有一個關於Arduino從應用程序共享的好消息:http://www.allaboutcircuits.com/projects/communicate-with-your-arduino-through-android/
2)使用IOIO OTG分線單元將您自己的傳感器轉換爲各種輸入。您將能夠從Java訪問傳感器。他們甚至提供一個應用程序來測試一切。該設備本身還具有電池電量和任何有線傳感器的充電支持。你只需將它們連接起來,將它插入你的android USB,然後離開你。我認爲他們即將發佈新車型,因爲目前的車型已經停產:https://www.sparkfun.com/news/2069
反正,祝你好運。
「可以將外部氣壓計連接到Android設備並將測量結果分享給所有應用程序」 - 不是我所知道的,沒有定製ROM知道您的外部氣壓計以及任何它所說的協議。 – CommonsWare
Android Fit API包括[外部BLE傳感器](https://developers.google.com/fit/android/ble-sensors)?它是否滿足您的需求? – Stan