現在JNIを用いてC++のコードでUSB操作を行おうとしており、UsbDeviceConnectionというクラスのメソッドを用いています。※ドキュメント
やろうとしていることは、C++でUsbDeviceConnectionクラスのメソッドを呼び、その返り値をJAVAのメソッドの引数としてわたす、というものです。
メソッドの返り値がint、String、Booleanのものはうまくいくのですが、返り値が
byte[]であるgetRawDescriptors()メソッドだとどうしてもうまくいきません。byte[]型はC++でどのように扱えばいいのでしょか?
わかる方いらっしゃればご教授お願いします。
【C++ソース】
jmethodID mid_getRawDescriptors = env->GetMethodID(jcUsbDeviceConnection,"getRawDescriptors","()[B");
jbyteArray RawDescriptors = (jbyteArray)env->CallByteMethod( usbDevConn, mid_getRawDescriptors, NULL);//※usbDevConn→UsbDeviceConnectionクラスのインスタンス
jmethodID mid_storeConnection = env->GetMethodID(jcHelloJni,"storeConnection","([B)V");
env->CallVoidMethod( thiz, mid_storeConnection,RawDescriptors);
【JAVAソース】
public void storeConnection( byte[] RawDescriptors ){
(略)
}