編輯:初級開發
在Java上處理數據流很簡單,提供了InputSream、OutputSream和字節數組的之間的轉化。今天android123將和大家一起說下處理上次遺留的manageConnectedSocket方法的細節,由於藍牙傳輸中可能存在中斷,所以為了防止阻塞需要開一個工作者線程,相關的示例代碼
private class ConnectedThread extends Thread {
private final BluetoothSocket cwJSocket;
private final InputStream cwjInStream;
private final OutputStream cwjOutStream;
public ConnectedThread(BluetoothSocket socket) {
cwJSocket = socket;
InputStream tmpIn = null; //上面定義的為final這是使用temp臨時對象
OutputStream tmpOut = null;
try {
tmpIn = socket.getInputStream(); //使用getInputStream作為一個流處理
tmpOut = socket.getOutputStream();
} catch (IOException e) { }
cwjInStream = tmpIn;
cwjOutStream = tmpOut;
}
public void run() {
byte[] buffer = new byte[1024];
int bytes;
while (true) {
try {
bytes = cwjInStream.read(buffer);
mHandler.obtainMessage(MESSAGE_READ, bytes, -1, buffer).sendToTarget(); //傳遞給UI線程
} catch (IOException e) {
break;
}
}
}
public void write(byte[] bytes) {
try {
cwjOutStream.write(bytes);
} catch (IOException e) { }
}
public void cancel() {
try {
cwJSocket.close();
} catch (IOException e) { }
}
}
對於具體的連接,我們看到在android平台上使用了Java標准的輸入、輸出流操作,BluetoothSocket 提供的getInputStream()和getOutputStream()方法可以很好的處理我們具體的數據,完整的工程示例代碼和總結我們將在下次提供給大家。
Notification通知界面可以用自己定義的界面來顯示。下面是我實現的帶進度條的通知效果下面是主要實現部分代碼,比較簡單直接看代碼可以了。Java代碼nf =new
從學習搭環境到開發,雖然也遇到些讓人糾結的問題,還好都一一解決了。言歸正轉,這次寫的是一個Demo似的小應用,簡單得不能再簡單了,一共就三個類,主類Bubble繼承於A
70.Spinner1 注意:源碼第7行ArrayAdapter用R.array.colors數組來設置 1: @Overr
上課講義摘錄之13:android的IBinder介面及其安全性機制Activity物件與Service物件在不同的進程(Process)裡執行,各有不同的UID(Un