更新Android 4.2.2后蓝牙流停止。到4.4.2

时间:2014-12-03 14:54:52

标签: android bluetooth

我正在开发Android应用程序,它不断从医疗设备接收数据。设备配置为串行端口。

在android 4.2.2上一切正常。将华硕K00E更新为Android 4.4.2后出现问题。

连接设备后立即开始传输数据。 几秒钟华硕正常接收数据,然后停止。 日志中没有错误。

视频在这里: http://youtu.be/GEc3yKVQGJc

注意最后几秒钟。

连接片段:

    protected Void ConnectToCardioBT(BluetoothDevice device) {
    try {
        Method m = null;
        try {
            m = device.getClass().getMethod("createRfcommSocket",
                    new Class[] { int.class });
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }
        try {
            socket = (BluetoothSocket) m.invoke(device, Integer.valueOf(1));
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }

        socket.connect();

..........................

从流片段中读取:

    private class ConnectedThread extends Thread {
    private final InputStream mmInStream;

    public ConnectedThread(BluetoothSocket socket) {
        InputStream tmpIn = null;
        try {
            tmpIn = socket.getInputStream();
        } catch (IOException e) {
        }
        mmInStream = tmpIn;
    }

    public void run() {

        byte[] buffer = new byte[2048];
        int bytes; 

        while (true) {
            try {

                Log.d(TAG,Integer.toString(mmInStream.available())+": " + new Date().getTime());
                bytes = mmInStream.read(buffer);

...............................

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

解决方案在这里找到:

Application using bluetooth SPP profile not working after update from Android 4.2 to Android 4.3

由于某些未知原因,需要定期向发送设备发送一些命令。在这种情况下,传输不会停止。如果有人知道原因,请评论。感谢。