我正在开发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);
...............................
非常感谢任何帮助。
答案 0 :(得分:2)
解决方案在这里找到:
Application using bluetooth SPP profile not working after update from Android 4.2 to Android 4.3
由于某些未知原因,需要定期向发送设备发送一些命令。在这种情况下,传输不会停止。如果有人知道原因,请评论。感谢。