나는을 기반으로 Wii 밸런스 보드로 입력 값을 연결하고 읽는 Android 앱을 만들었습니다. 안드로이드가 Wii 지원을 중단했을 때, 안드로이드 4.4 (KitKat)까지 내 앱은 SDK 15 & 16으로 매력적으로 작동했습니다. 이제 Wii 지원이 다시 활성화되어 Android 5.1.1으로 시작합니다. 또한 블루투스 연결 권한 (ACCESS_COARSE_LOCATION에 속하지 않음)을 얻기위한 새로운 권한 체계를 구현했습니다.android 6+ 어떻게 밸런스 보드를 연결 하시겠습니까?
내 문제는 더 이상 Wii 밸런스 보드 입력을 읽을 수 없다는 것입니다.
내가 발견 소켓을 만들고 소켓에 연결했을 때이 메시지가 나타날 수 있습니다 도움이 read failed, socket might closed or timeout, read ret: -1
대답을 나 지금까지가 아닌 이상 작동 :
일부 코드 :
private BluetoothSocket createBluetoothSocket(
int type, int fd, boolean auth, boolean encrypt, String address, int port){
try {
Constructor<BluetoothSocket> constructor = BluetoothSocket.class.getDeclaredConstructor(
int.class, int.class,boolean.class,boolean.class,String.class, int.class);
constructor.setAccessible(true);
BluetoothSocket clientSocket = constructor.newInstance(type,fd,auth,encrypt,address,port);
return clientSocket;
} catch (Exception e) {
Log.v(TAG,"createBluetoothSocket failed: "+errorMsg(e));
return null;
}
}
private connectWii(String MAC) {
try {
// MAC is the MAC address of Wiiboard
int TYPE_L2CAP=3;
sk = createBluetoothSocket(TYPE_L2CAP, -1, false,false, MAC, 0x13);
// this fires read failed, socket might closed or timeout, read ret: -1
sk.connect();
} catch (Exception e) {
Log.v(TAG,"Failed : "+errorMsg(e));
}
}
미리 도움을 주셔서 감사합니다.