如何通过蓝牙连接Android设备与matlab'仪器控制'工具箱?

时间:2015-06-01 07:50:42

标签: android matlab sockets bluetooth serial-port

我想通过蓝牙连接 Android设备 matlab ,以便在matlab和我自己的Android应用之间交换数据。但我无法通过'Instrument Control'-Toolbox与我的Android设备连接。为什么呢?

scan and connect android device 首先,我扫描了所有可用的设备,然后尝试连接(使用“connect”按钮)与android。

我搜索并说:

所以我读了技术spez。从我的设备,我发现他们不支持所需的SPP蓝牙配置文件。

  • 三星Galaxy Young 2(SM-G 130HN):
    Bluetooth®配置文件:HSP,OPP,SAP,A2DP,PBAP,HFP,AVRCP,DI,HID ,HOGP,PAN,MAP
    tech spez. galaxy young
  • 三星Galaxy S Advance:
    蓝牙配置文件:GAP,SSP,SDAP,HSP,HFP,A2DP,SAP,OPP,PBAT,MAP,AVRCP,HID
    tech spez. galaxy s
  • HTC One M7:
    常用配置文件:HSP [耳机],HFP [免提],A2DP [立体声音频],AVRCP [媒体控制],HID [外围设备]
    tech spez. HTC One M7

但是在android文档中它说:

  • 最常见的蓝牙插座类型是RFCOMM,它是Android API支持的类型。 RFCOMM是一种面向连接的蓝牙流媒体传输。它也称为串行端口配置文件(SPP)。
    support SPP profile in android

所以我认为android本身支持SPP,但不支持我用过的设备? 有没有办法通过蓝牙与matlab连接这些手机之一?
哪些Android设备正在运行?

1 个答案:

答案 0 :(得分:0)

<强>解决方案

这里'activate bluetooth spp in android'说:

  • 在Android手机上,您可能需要运行一个通过SPP启动服务的应用程序。

您需要侦听传入的连接请求,因此您应该使用此功能:

listenUsingRfcommWithServiceRecord(String, UUID)

您可以在这里找到一些例子:

代码示例

final Thread connect = new Thread(new Runnable() {
            @Override
            public void run() {
                BluetoothServerSocket serverSocket;

                BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
                UUID sppUUID = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");

                        BluetoothSocket bluetoothSocket = null;

                        try {

                           serverSocket = bluetoothAdapter.listenUsingRfcommWithServiceRecord("your app name", sppUUID);
                           bluetoothSocket = serverSocket.accept(); // blocking call, until a connection is established.
                           Log.i("TAG", "serverSocket accept");

                        } catch (IOException e) {
                            Log.e("TAG", "IOException");
                        }

                        // If a connection was accepted
                        if (bluetoothSocket != null) {
                            // Do work to manage the connection (in a separate thread)
                            manageConnectedSocket(bluetoothSocket);
                        }

            }
        });
connect.start();

我的错是认为我可以在没有自己的应用程序的情况下连接matlab和android,只需使用android&#39; bluetooth&#39;设置中的连接部分。