我正在创建一个 Android 应用程序,它通过蓝牙将我的设备连接到嵌入式芯片。我正在根据 Palm Pilot 上已经存在的程序(用 C 编写)对我的设计进行建模。我正在使用蓝牙聊天示例来运行我的代码,但已经卡住了。我对整个编码世界仍然很陌生,并且让自己有些困惑。
我想将以下代码从 C 转换为 Java....
SrmReceive(portId,&c,1,(t*5L*Sec)/1000L,&err)
我在这里遇到的唯一真正问题是第三个参数。1
代表,如number of bytes to receive
手掌文档中所述,类型为UInt32
。
蓝牙聊天示例中的代码具有以下读取数据的功能...
public void run() {
Log.i( TAG, "BEGIN mConnectedThread" );
buffer = new byte[1024];
int bytes;
// Keep listening to the InputStream while connected
while( true ) {
try {
// Read from the InputStream
bytes = mmInStream.read( buffer );
// Send the obtained bytes to the UI Activity
mHandler.obtainMessage( BtHelperHandler.MessageType.READ, bytes, buffer).sendToTarget();
} catch ( IOException e ) {
Log.e( TAG, "disconnected", e );
sendErrorMessage( 1 );
break;
}
}
}
我想将run()
方法更改为具有要读取的特定字节数的参数。我对该怎么做有点困惑。我刚在想...
public void run( int size ) {
buffer = new byte[size];
...
}
但这对我来说似乎不对,我觉得我混淆了我对字节的定义。听起来可能很愚蠢,但我对这些信息还不够自信。将 a 转换为 java 让我感到困惑UInt32
,因为 java 没有等效类型。如果有人知道,请告诉我。