-1
我开发了一个带有3-4个活动的Android-蓝牙应用程序。现在我必须在任何这些活动中接收蓝牙数据。 我想我必须实现一个包含BroadcastReceiver的服务,它侦听传入的BlueTooth数据并发送广播,但我不知道该怎么做。在整个应用程序中接收蓝牙数据
在此先感谢。
我开发了一个带有3-4个活动的Android-蓝牙应用程序。现在我必须在任何这些活动中接收蓝牙数据。 我想我必须实现一个包含BroadcastReceiver的服务,它侦听传入的BlueTooth数据并发送广播,但我不知道该怎么做。在整个应用程序中接收蓝牙数据
在此先感谢。
您可以实现自己的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
}
};
不错!非常感谢,我明天会尝试。 :) – Prexx
所以...我的LocalService扩展服务...我必须从其他东西延伸它的工作吗?我需要在我的AndroidManifest.xml中指定多于' '? –
Prexx
是的,你是对的。从Service中扩展并在清单中添加该行。之后,开始你的服务。更多细节:http://developer.android.com/guide/components/services.html –