Articles of 蓝牙

在Android上使用Phonegap通过蓝牙进行设备间通信?

我想知道一台Android设备上的基于Phonegap的应用程序是否可以通过蓝牙与另一台设备上的另一个基于Phonegap的应用程序进行通信? 如果可以用Android的一些原生Java代码来做这种事情,那么应该可以通过Phonegap把这些代码包装成一个Phonegap插件,对吧……? 从蓝牙的Android文档中,我了解一个设备需要充当服务器并监听传入连接,而另一个“客户端”需要通过连接到服务器来启动。 这可以在我设想的两个略有不同的应用程序的场景中工作,例如,在平板电脑上运行的“主”应用程序控制在手机上运行的“从属”应用程序。 这个BluetoothSerial插件似乎很有用,因为它提供了侦听和启动连接的function。 有没有人使用这个插件在Android设备之间进行通信?

如何在Android中扫描经典蓝牙设备时获取原始扫描记录(广告包)?

我现在正在做的是尝试同时扫描BLE和经典蓝牙设备。 据我所知,我可以通过以下方式发现: BluetoothAdapter.getDefaultAdapter().startDiscovery()并通过以前注册的BroadcastReceiver接收意图。 它工作正常,我可以区分经典和LE设备,但我在广告包中有一些有价值的数据,我不知道如何从传入的Intent获取它。 欣赏任何想法。

从android通过蓝牙浏览Raspberry Pi的文件系统

使用案例: 我正在开发一个涉及Android手机和Raspberry Pi的项目。 Raspberry Pi装置将在现场种植传感器,偶尔用户可以随身携带电话并尝试从Raspberry Pi获取读数。 所以应用程序的职责是获取数据并绘制图表。 设计: 我计划允许用户在设备配对后选择文件的位置。 截至目前,已经完成了可用设备的识别,设备的程序化配对。 但我无法从Android浏览Raspberry Pi的文件系统。 你是如何实现这一目标的? 任何帮助,将不胜感激。 如果您指向此资源 ,请同时解释(取自此处的选定答案)。

16个蓝牙振动器连接到Android手机

我们希望使用蓝牙将16个振动器连接到Android手机,并单独控制振动器。 据我所知,你只能在微微网中拥有8个设备,这样就可以限制7个振动器(手机本身就是第8个设备)。 首先:这是正确的吗? 在Android中,最多可以有七台连接设备运行良好且可靠吗? 或者Android的蓝牙实施或API是否存在一些额外的限制或问题? 对于我们的十六个振动器,我们是否必须使用其他设备构建一个散射网,这些设备可以在手机的微微网和一些振动器的附加微微网之间架起桥梁? 有没有人有这方面的经验,它是否运作良好? (不,它不是性玩具!)

find配对的Android蓝牙设备是否在范围内的正确方法?

我想要编写一个充当蓝牙客户端的应用程序。 我想要做的是找出最好的方法来判断我支持的特定设备是否在范围内,而不是一直尝试对其进行BluetoothDevice.connect()并且失败如果它不在范围内 这里我们假设设备已经配对。 我担心尝试连接到特定设备直到它在范围内是不好的做法。 在我看来这对电池来说会有坏处。 有谁知道应该用来完成我想要做的事情的任何方法或概念? 谢谢!

将Android Nexus One与Arduino + BlueSmirf连接

我对这一切都有点新意,所以请耐心等待 – 我真的很感谢你的帮助。 我正在尝试将Android Nexus One与连接到BlueSmirf的arduino(Duemilanove)相关联。 我有一个程序只是将字符串“Hello Bluetooth”输出到BlueSmirf所连接的任何设备。 这是Arduino计划: void setup(){Serial.begin(115200); int i; } void loop(){Serial.print(“Hello Bluetooth!”); 延迟(1000); } 一台我的电脑BT终端我可以看到消息并连接没问题。 麻烦在于我的android代码。 我可以用android连接到设备,但是当我查看日志时它没有显示“Hello Bluetooth”。 这是调试日志: 04-09 16:27:49.022:ERROR / BTArduino(17288):连接FireFly-2583 04-09 16:27:49.022:ERROR / BTArduino(17288):开始连接sockets 04-09 16:27:55.705:ERROR / BTArduino(17288):收到:16 04-09 16:27:56.702:ERROR / BTArduino(17288):收到:1 04-09 16:27:56.712:ERROR / BTArduino(17288):收到:15 04-09 16:27:57.702:ERROR / BTArduino(17288):收到:1 04-09 16:27:57.702:ERROR / BTArduino(17288):收到:15 04-09 16:27:58.704:ERROR / […]

AudioManager.startBluetoothSco()在Android Lollipop上崩溃

当在Manifest中针对API级别18或更高级别调用AudioManager.startBluetoothSCO()时,文档指出已建立原始音频连接,并且如果使用针对API 17或更低版​​本的虚拟语音呼叫。 直到API级别20(Android L预览版)这个工作正常,针对任何API。 但是,当使用最新的Android Lollipop构建LPX13D并且目标API级别为18或更高时,我会遇到以下堆栈跟踪崩溃: E / AndroidRuntime(31705):引起:java.lang.NullPointerException:尝试在空对象引用E / AndroidRuntime(31705)上调用虚方法’java.lang.String android.bluetooth.BluetoothDevice.getAddress()’:at android.os.Parcel.readException(Parcel.java:1546)E / AndroidRuntime(31705):在android.os.Parcel.readException(Parcel.java:1493)E / AndroidRuntime(31705):在android.media.IAudioService $ Stub $ Proxy.startBluetoothSco(IAudioService.java:1587)E / AndroidRuntime(31705):at android.media.AudioManager.startBluetoothSco(AudioManager.java:1468) 如果我在Android Lollipop上针对API级别17或更低级别,一切都按预期工作。 我相信问题的根源在于改变Android的音频代码,该代码发生在文件AudioService.java第2392行的API级别21中: public void startBluetoothSco(IBinder cb, int targetSdkVersion) { int scoAudioMode = (targetSdkVersion < Build.VERSION_CODES.JELLY_BEAN_MR2) ? SCO_MODE_VIRTUAL_CALL : SCO_MODE_UNDEFINED; startBluetoothScoInt(cb, scoAudioMode); } 看起来SCO_MODE_UNDEFINED应该是SCO_MODE_RAW。 如果查看该文件,您可以看到在几个地方检查了SCO_MODE_RAW,但实际上从未在任何地方传递过。 还有其他人遇到这次崩溃吗? 有没有人知道比将目标SDK降级到17更好的解决方案? 如果没有,你能不能把我向谷歌提交的错误报告加注,以增加它被查看的可能性:-)

蓝牙连接失败“java.io.IOException:读取失败,套接字可能关闭或超时,读取ret:-1”

我正在尝试通过我在Nexus 5中安装的应用程序连接设备。我想在android中创建类似彩虹联系人的应用程序。 在我的应用程序中,我的目标是通过蓝牙连接到另一台设备并传输一组联系人或文件。 我按照这个问题 ,但是提到的解决方法对我不起作用这是我的完整代码。 这是我的应用程序中的代码片段,我试图获取套接字并建立连接。 我能够通过配对设备对话框,但是当我尝试配对时,会出现错误 //to create socket if (secure) { bluetoothSocket = device.createRfcommSocketToServiceRecord(uuid); } else { bluetoothSocket = device.createInsecureRfcommSocketToServiceRecord(uuid); } //connection establishment try { bluetoothSocket.connect(); success = true; break; } catch (IOException e) { //try the fallback try { Class clazz = tmp.getRemoteDevice().getClass(); Class[] paramTypes = new Class[] {Integer.TYPE}; Method m = […]

如何检测已发现和配对的设备是否可用?

我已经发现了其他设备,我已经配对了它。 至少我把它放在Android手机上的配对设备列表中。 现在在BluetoothSocket.connect()上可能会出现两个问题: 远程设备已关闭或无法使用 远程设备忘记了配对,因为它只能配对另一台设备,并且已与另一部手机配对 =>然后在超时后连接失败。 是否可以检查已配对的设备是否真的可用, 并记住它是否与我的手机配对而没有连接到它? 这与检测设备是否已连接无关。 配对和可见与连接不同。

计算android中蓝牙设备之间的距离

我想从android手机计算距离蓝牙配对设备。 我是Android蓝牙概念的新手可以任何人建议我在Android sdk中可能或不可能。如果可以发布任何代码或教程链接!