看板 AndroidDev 關於我們 聯絡資訊
To stanleychao, xezct1213兩位大大, 假設 從 device 丟出來的東西長度為 5個byte之ASCII hex, 而你欲取得數值是5個byte中的第二個byte 我會這麼做 int i_value = readBuf [1] & 0xFF; // if readBuf.Length=5, 將 ASCII之hex 轉整數 String s_value = String.valueOf(i_value);//整數在轉換成字串格式 ※ 引述《stanleychao ()》之銘言: : 大家好 小弟我最近在用android的藍芽傳送的東西 : 我使用血氧濃度計使用藍芽傳送到我寫的android app : 最後把圖畫出來 : 我使用是bluetoothchat的範例去改 : 其中我讀值的一段是 : byte[] readBuf = (byte[]) msg.obj; : String readMessage = new String(readBuf,0,msg.arg1); : valueBuffer = readMessage; : log.v(TAG,"read data:" + valueBuffer); : 最後valueBuffer觀察的結果都是一些亂碼 : 我在想這是什麼問題? : 可以請各位幫我嗎 : 超級感謝的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.105.214.165
xezct1213:int i_value = readBuf [0] & 0xFF; 可正常顯示 02/27 15:18
xezct1213:S大真的很感謝您,另外如何把傳出去的值轉成byte 02/27 15:20
你的意思-是從app送出指令至device嗎?0.0? ※ 編輯: sweet00914 來自: 59.105.214.165 (02/27 15:29)
xezct1213:S大 如您所說的 是 app傳指令到device 02/27 15:36
xezct1213:http://pastebin.com/Zxj1d9s6 這是我傳值部分的code 02/27 15:37
xezct1213:謝謝S大百忙抽空QQ... 02/27 15:37
xezct1213:我這邊傳String 1 裝置收到的是49 02/27 15:38
假設要send的byet 長度一樣為5,且送出指令的格式為hex byte[] out = new byte[5]; out[0] = (byte) 0x你你; out[1] = (byte) 0x我我; ... ... out[4] = (byte) 0x它它; 最後mmOutputStream.write(out); ※ 編輯: sweet00914 來自: 59.105.214.165 (02/27 15:43)
xezct1213:所以如果手機端要傳送49,out[0] = (byte) 0x4; 02/27 20:18
xezct1213:out[1] = (byte) 0x9; 陣列是這樣設嗎? 02/27 20:19
xezct1213:測試成功,要傳hex格式,對不起眼殘=.= 02/27 20:22
xezct1213:那如果是ASCII碼可以直接轉byte嗎? 02/27 20:45
xezct1213:直接把0x你妳 改成49即可,測試成功 02/27 21:18
MetalChao:我有點看不懂, sweet 貼的兩段 code, 怎麼看我都覺得是 02/28 00:04
MetalChao:單純在處理數值, 跟 ASCII hex 一點關係都沒有? 02/28 00:04