我正在創建一個Android應用程序,通過藍牙將我的設備連接到嵌入式芯片。我在Palm Pilot上已經存在的一個程序(使用C編寫)之後對我的設計進行了建模。我正在使用藍牙聊天示例來讓我的代碼運行,並且已經卡住了。我對整個編碼世界仍然很陌生,並且對自己有些困惑。通過I/O流接收一定數量的字節
我想下面的代碼由C轉換成Java ....
SrmReceive(portId,&c,1,(t*5L*Sec)/1000L,&err)
我在這裏的唯一真正的問題,是第三個參數。如palm手冊中所述,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];
...
}
但是,這似乎並沒有我的權利,我覺得我混合了我的一個字節的定義。可能聽起來很愚蠢,但我對這些信息還不夠信心。將UInt32
轉換爲java是令人困惑的,因爲java沒有相同的類型。如果有人知道,請讓我知道。