Tôi đang sử dụng trò chuyện qua bluetooth để kết nối và nhận dữ liệu từ thiết bị bluetooth.Đọc dữ liệu từ thiết bị bluetooth trong android
tôi sử dụng đoạn mã sau để đọc dữ liệu:
public void run() {
byte[] buffer = new byte[1024];
int bytes;
Log.v("MR", "start listening....");
// Keep listening to the InputStream while connected
while (true) {
try {
// Read from the InputStream
Log.d("MR", "buffer in try");
bytes = mmInStream.read(buffer);
Log.d("MR", "input stream :"+(new String(buffer)));
// Send the obtained bytes to the UI Activity
mHandler.obtainMessage(Conn.MESSAGE_READ, bytes, -1, buffer).sendToTarget();
Log.d("MR", "buffer after");
} catch (Exception e) {
Log.e("MR", "Error :"+e.getMessage());
//
connectionLost();
// break;
}
Log.d("MR", "buffer after while");
}
}
Thiết bị
đang gửi dữ liệu mọi lúc mà không dừng lại.Với đoạn mã trên tôi nhận được thông báo của:
Log.d("MR", "buffer in try");
sau đó nó đi vào dòng tiếp theo:
bytes=mmInStream.read(buffer);
và không bao giờ trở về từ cuộc gọi đó. Tôi đoán điều này là bởi vì nó bắt đầu đọc dữ liệu từ thiết bị và không dừng lại cho đến khi nó ngắt kết nối. Làm thế nào tôi có thể đọc một số lượng byte nhất định tại một thời điểm?
EDIT
Trừ khi nó ở lại để mã bytes = mmInStream.read(buffer);
do rằng nó don; t nhận được bất kỳ dữ liệu trở lại vào từ thiết bị?
thể không phải là chắc chắn rằng tôi havce ghi trên đầu trang. tôi nghĩ rằng nó phải là cổng mà nó làm cho giao tiếp. là nó có thể cho hai thiết bị được kết nối nhưng trên ổ cắm không có gì để được truyền os có cái gì đó đi sai với giao tiếp? – prokopis
Upvotes sẽ là tốt đẹp lol ... hy vọng bạn đang có một số thành công – JPM
có cùng một vấn đề chính xác –