Android フォンを Bluetooth デバイス (既にペアリングされている) にプログラムで接続しようとしています。スレッドでcreateRfcommSocketToServiceRecord(UUID)メソッドを使用しています。
BluetoothキーボードはHIDデバイスであることを知っているので、UUIDを次のように使用しています
00001124-0000-1000-8000-00805f9b34fb
上記のメソッドは BluetoothSocket オブジェクトを返しますが、bluetoothSocket.connect() が呼び出されると、HID デバイスへの接続に失敗します。IOException : 検出に失敗しました
私はこれについて多くのことを検索しましたが、これを修正する方法はわかりません。
Androidでこのアプローチを使用してHIDデバイスではなくRfcommを接続することは可能ですか? もしそうなら、これにどの代替アプローチを使用する必要がありますか? このアプリケーションで Android 4.1 を搭載した Samsung Galaxy S3 を使用しており、(設定から) ペアリングした後、SMS、電子メールなどの組み込みアプリで Bluetooth キーボードを使用して入力できました。正しいアプローチを使用しているかどうかわかりません。アプリでキープレス シリアル データを読み取りたい。
私が使用しているコードは次のとおりです。
private class ConnectThread extends Thread {
private final BluetoothSocket mmSocket;
public ConnectThread(BluetoothDevice device) {
BluetoothSocket tmp = null;
try {
tmp = device.createRfcommSocketToServiceRecord(mUUID);
} catch (IOException e) {
e.printStackTrace();
}
mmSocket = tmp;
}
public void run() {
try {
mmSocket.connect();
} catch (IOException connectException) {
try {
mmSocket.close();
} catch (IOException closeException) { }
return;
}
Log.d(TAG, "ConnectThread connection successful");
}
public void cancel() {
try {
mmSocket.close();
} catch (IOException e) { }
}
}