通常、Androidの設定メニューからデバイスをペアリングしてから、プログラムでプリンターに接続しようとします。ペアリングされたデバイスを検索して接続を試みると、ピンの入力を再度求められます。接続するたびにパスワードを入力する必要がないようにしています。
関連するコードは次のとおりです。
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
String defaultPrinter = UserSession.getDefaultPrinter( context );
BluetoothDevice preferredDevice = null;
if ( defaultPrinter == null ) {
//start activity regarding selecting a default printer
}
else {
for (BluetoothDevice device : pairedDevices)
if ( device.getAddress().equals( defaultPrinter ) ) {
preferredDevice = device;
break;
}
}
UUID id = UUID.fromString( BLUE_TOOTH_UUID );
try {
selectedDeviceSocket = preferredDevice.createRfcommSocketToServiceRecord( id );
selectedDeviceSocket.connect();
isConnected = true;
return selectedDeviceSocket.getOutputStream();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
接続は、正しいピンを再入力した場合にのみ発生します。