2017-01-03 46 views
1

私はに基づいてWiiバランスボードで入力罰金を接続し読み込んだAndroidアプリを製作しました。 私のアプリはAndroid 4.4(KitKat)までSDK 15 & 16で魅力的に働いていましたが、AndroidがWiiサポートを停止しました。 Wiiサポートが再び有効になりました。Android 5.1.1で始まります。私はまた、Bluetooth接続許可(ACCESS_COARSE_LOCATIONに含まれていません)を取得するための新しいアクセス許可スキームを実装しました。アンドロイド6+ Wiiバランスボードの接続方法は?

私の問題は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

それは、この問題の回答を見て価値がある - Android 4.1、下から削除されている古典的なデバイス(2005や古い年頃)のブルートゥースに接続するL2CAPプロトコルへのアクセスを提供することを思わhttps://android.stackexchange.com/a/105285

最近のAndroidのビルド。

関連する問題