如何在Android OS中通过Java访问设备驱动程序?

时间:2012-12-26 05:45:11

标签: java android android-ndk java-native-interface linux-device-driver

我正在创建一个Android应用,需要访问Broadcomm的单芯片(集成Wifi +蓝牙+ FM)芯片网址的设备驱动程序:http://www.broadcom.com/products/Wireless-LAN/802.11-Wireless-LAN-Solutions/BCM4334

据称,Broadcomm允许访问Android操作系统上的设备驱动程序,并使其实现开放。

App的功能无关紧要。

1)在Android中通过Java访问设备驱动程序的最佳方法是什么?

2)使用JNI访问设备驱动程序是一种好方法吗?

3)使用必要的NDK或SDK是否足够,因为我只是访问设备驱动程序&实际上没有编写本机代码?

4)当我走这条路时,还有其他重要的建议吗?

另外,如果您已经开发了类似的应用程序或专家,请善意回复,我不想最终提出50种不同的意见,这些意见会让我感到困惑。

万分感谢。

1 个答案:

答案 0 :(得分:1)

BCM4334是一款Wi-fi / BT组合芯片,它不包括3G调制解调器。

我不确定“访问设备驱动程序”是什么意思,Wi-Fi通过android.net.wifi,蓝牙 - 通过android.bluetooth公开,这真的是使用Wi-Fi的最佳方式和BT在Android上 - 通过公共API。同样,我不清楚你想用驱动程序做什么,但很可能你的应用程序无权做任何有用的事情。

不同的驱动程序有不同的接口,例如Wi-fi驱动程序是通过基于IOCTL的WE API(需要本机代码)来控制的,但也有一组命令行工具(无线工具)可用于纯Java,所以有多种选择取决于你想要实现的目标。

但我想重申Android为Wi-Fi和BT提供公共API,我的建议是使用Android API,而不是低级驱动程序界面。