Tôi đang phát triển một ứng dụng cho Android. Ứng dụng này sẽ giao tiếp với thiết bị Bluetooth (BT) (gửi một số byte). Tôi gặp sự cố khi gỡ lỗi/chạy ứng dụng này trên thiết bị của mình (Samsung Galaxy mini). Khi tôi tạo một ổ cắm BT và ngừng gỡ lỗi, hãy đóng băng điện thoại và tôi phải khởi động lại bằng cách tháo pin ra. Trong trường hợp chạy ứng dụng này (từ Eclipse) mọi thứ đều ổn, nhưng khi tôi thử chạy lại nó, điện thoại bị đóng băng và ứng dụng chưa được cài đặt. Nếu tôi cố gắng cài đặt ứng dụng này không cần thiết trước khi chạy lần thứ hai, điện thoại sẽ đóng băng lại. Đây là một mã có vấn đề:Ổ cắm Bluetooth đóng băng điện thoại
private final BluetoothDevice mmDevice;
private UUID uuid;
public ConnectionThread(BluetoothDevice device) {
Log.d(TAG, "create ConnectionThread");
uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
BluetoothSocket tmp = null;
mmDevice = device;
try {
tmp = mmDevice.createRfcommSocketToServiceRecord(uuid);
} catch (IOException e) { }
mmSocket = tmp;
socketConnected = true;
}
Đây là một hàm tạo chuỗi. Khi tôi nhận xét dòng
tmp = mmDevice.createRfcommSocketToServiceRecord(uuid);
điện thoại không bị đóng băng nên vấn đề là tạo ổ cắm (không kết nối). Khởi động lại điện thoại sau mỗi lần gỡ lỗi hoặc chạy là khá khó chịu và tôi phải làm rất nhiều việc.
Nếu tôi chạy ứng dụng này từ điện thoại (ngắt kết nối với Eclipse), nó hoạt động mà không có bất kỳ vấn đề gì. Bất kỳ ý tưởng nào có thể là vấn đề hoặc cách khắc phục? Cảm ơn bạn.
Âm thanh như một lỗi firmware, phải không? –
@CodePainters: lỗi firmware hoặc IDE. Tôi đã tìm thấy một chủ đề tương tự: http://stackoverflow.com/questions/4408287/android-bluetooth-socket-freeze-application. Vì vậy, nếu tôi tắt BT trong onDestroy gọi lại, mọi thứ đều OK. – DanielH
IDE? Không chắc. Và Android có đầy đủ các lỗi ... –