2012-11-21 55 views
-1

我開發了一個帶有3-4個活動的Android-藍牙應用程序。現在我必須在任何這些活動中接收藍牙數據。 我想我必須實現一個包含BroadcastReceiver的服務,它偵聽傳入的BlueTooth數據併發送廣播,但我不知道該怎麼做。在整個應用程序中接收藍牙數據

在此先感謝。

回答

1

您可以實現自己的BroadcastReceiver。所以,當您的LocalService接收到數據時,它將使用sendBroadcast方法進行通知。您的活動應該註冊特定的BrodcastReceiver。

在服務

通知有關收到的消息:

public void onMessageReceived(String message) { 
    Intent intent = new Intent(ACTION_BLUETOOTH_MESSAGE); 
    intent.putExtra(BLUETOOTH_MESSAGE_CONTENT, message); 
    sendBroadcast(intent); 
} 

在每個活動

註冊的廣播接收器:

registerReceiver(messageReceiver, 
      new IntentFilter(ACTION_BLUETOOTH_MESSAGE));  

實現廣播接收機:

private BroadcastReceiver messageReceiver = new BroadcastReceiver() { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     String message = intent.getStringExtra(BLUETOOTH_MESSAGE_CONTENT); 
    //Do something you want 
    } 
}; 
+0

不錯!非常感謝,我明天會嘗試。 :) – Prexx

+0

所以...我的LocalService擴展服務...我必須從其他東西延伸它的工作嗎?我需要在我的AndroidManifest.xml中指定多於''? – Prexx

+0

是的,你是對的。從Service中擴展並在清單中添加該行。之後,開始你的服務。更多細節:http://developer.android.com/guide/components/services.html –

相關問題