2012-12-26 48 views
1

我正在创建一个Android应用程序,需要访问Broadcomm单芯片(集成Wifi +蓝牙+ FM)芯片URL的设备驱动程序:http://www.broadcom.com/products/Wireless-LAN/802.11-Wireless-LAN-Solutions/BCM4334如何通过Android操作系统中的Java访问设备驱动程序?

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

该应用程序的功能是无关紧要的。

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

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

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

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

也请不用客气只有当你已经开发了类似的应用程序或一个专家,我不想与50点不同的意见,这将让我困惑落得回应。

非常感谢。

回答

0

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

我不确定你的意思是“访问设备驱动程序”,Wi-Fi通过android.net.wifi,bluetooth暴露 - 通过android.bluetooth,这真的是使用Wi- Fi和BT上 - 通过公共API。再一次,我不清楚你想用驱动程序做什么,但很可能你的应用程序没有权限做任何有用的事情。

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

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

+0

是的Broadcomm芯片没有3G。 但是,正如我所提到的,应用程序的功能与问题无关,因此您不能建议我使用Android Bluetooth或Wifi API,如果我想要的话,我会! 我问了三个明确和明确的问题: 1)什么是最好的方式,详细访问设备驱动程序通过Java中的Android? 2)是否使用JNI访问设备驱动程序是一种好方法? 3)是否使用NDK或SDK是否足够,因为我只是访问设备驱动程序而不是实际编写本机代码? – cyber101

+0

请再次尝试阅读我的答案 - “不同的驱动程序有不同的接口,例如Wi-Fi驱动程序通过基于IOCTL的WE API(需要本机代码)进行控制”。蓝牙驱动程序也通过基于IOCTL的HCI API进行控制。没有直接的方式从Java发送IOCTL,所以需要本地代码和JNI。 – msh

+0

好的给出你的答案,什么是与驱动程序“沟通”的最佳方法,例如Br​​oadcomm上的FM驱动程序,但没有Android/Java软件包。我基本上需要编写一个Java/JNI封装来访问broadcomm芯片上的FM驱动程序? 1)什么是步骤(我如何在Android文件系统中看到驱动程序?)2)我需要什么特定的工具,ndk?3)你能否详细介绍如何调查和开始这个过程?谢谢 – cyber101

相关问题