Android 连接到外部蓝牙设备并开始接收数据

Android 连接到外部蓝牙设备并开始接收数据,android,Android,要连接到设备并开始从外部设备接收数据吗 现在可以列出设备并与之配对…现在希望连接到它并开始从它接收数据 Is there any way because i dont exactly know wat kind of data it is sending means in which formate etc ... 即蓝牙设备连续向应用程序发送数据,因此应用程序应连续接收数据使用listenUsingRfcommWithServiceRecord而不是 此代码正在使用中 Method m =

要连接到设备并开始从外部设备接收数据吗 现在可以列出设备并与之配对…现在希望连接到它并开始从它接收数据

Is there any way because i dont exactly know wat kind of data it is sending 
means in which formate etc ...

即蓝牙设备连续向应用程序发送数据,因此应用程序应连续接收数据

使用listenUsingRfcommWithServiceRecord而不是 此代码正在使用中

Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class} );
            btSocket = (BluetoothSocket) m.invoke(device, 1);  

对你的问题的答复如下

有没有办法因为我不知道它是什么样的数据 发送是指格式化等

是的,有两种方法可以做到

1) 使用意图

 Intent i = new Intent(Intent.ACTION_SEND);
 i.setType("image/jpeg");
 i.putExtra(Intent.EXTRA_STREAM, Uri.parse("/sdcard/file.jpg")); startActivity(Intent.createChooser(i, "Send Image"));
使用内置蓝牙发送数据的代码示例

2) 使用开源代码,它使用套接字连接和蓝牙管理器通过代码来实现。下面是开源代码的链接

通过蓝牙发送的数据是以字节数组的形式存在的,您必须对其进行解析并将其转换为字符串或您希望在代码中使用的任何形式

蓝牙有两种功能

1) 配对

2) 全球连接

如果使用第一种蓝牙方法(通过intent),设备将配对,但连接将不连续。在建立发送数据连接时,其他连接不存在。但若您使用的是blueterm开源代码,那个么您的配对和连接是恒定的,直到用户需要时才会中断

因此,您需要哪种蓝牙功能取决于您自己


如果我的答案解决了您的问题,请告诉我

我也不知道数据包的格式,因为数据是以字节的形式接收的