我开发了一个带有 3-4 个活动的 Android 蓝牙应用程序。现在我必须在任何这些活动中接收蓝牙数据。我想我必须实现一个包含广播接收器的服务,它监听传入的蓝牙数据并发送广播,但我不知道该怎么做。
提前致谢。
您可以实现自己的广播接收器。因此,当您的 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
}
};