2011-12-07 31 views
1

我正在開發一個應用程序通過藍牙與設備進行通信。 與BluetoothChat示例相同,我的應用程序創建一個服務對象,並調用service.connect()以獲取connectedThread進行數據傳輸。Android可以做「waitForResponse」

和我有一個命令方法,它採用一個整數作爲其參數。

問題是,有時候,設備會返回無效數據。 所以,當我想用​​十個不同的參數來執行命令,我需要做的是這樣的:

for (i = 0; i < 10; i++) { 
    myService.write(command(i)); 
    packet = waitForResponse(myService); 

    if (packet is valid) { 
     do something; 
    } else { 
     i--; 
    } 
} 

我的程序正在使用的處理程序處理的消息,例如當connectedThread看了一些數據,它會

mHandler.obtainMessage(ControlActivity.MESSAGE_READ, -1, -1, data) 
         .sendToTarget(); 

並且在我的Activity類的處理程序來處理這些消息。

我該怎麼做一些類似於Android上的「waitForResponse」? 還有其他方法可以滿足我的要求嗎?

API等級:13

回答

1

而不是等待,通常運行您的活動,只是從服務的廣播聽。

當服務類別send a global broadcast新數據準備就緒,並且具有活動類別listen並且響應該特定消息時。

+0

謝謝,我解決了這個問題 – Wenshan