2017-01-03 1 views
1

나는을 기반으로 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

대답을 나 지금까지가 아닌 이상 작동 :

Create wiimote socket

How to connect

일부 코드 :

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)); 
    } 
} 

미리 도움을 주셔서 감사합니다.

답변

1

은이 질문에 응답을보고 가치 -에서 제거 된 https://android.stackexchange.com/a/105285

(2005 이상 년경) 고전적인 장치하는 Bluetooth 연결 안드로이드 4.1 것을 아래 L2CAP 프로토콜에 대한 액세스를 제공 나타납니다 최신 Android 빌드

관련 문제