所以我有2个相同类的蓝牙GATT服务器对象。 他们每个人都有一个IntentFilter和BroadcastReceiver。 当对象从蓝牙服务器接收数据时,它在BroadcastReceiver中执行特定功能。
不幸的是,如果我发送两个请求(每个对象一个),则响应执行四次。 据我所知,第一个请求的响应在两个对象的BroadcastReceiver中执行,然后第二个对象请求的响应再次在两个对象中执行。
如何指定BroadcastReceiver仅在请求来自的对象中执行代码?
答案 0 :(得分:0)
如果对sendBroadcast()
和BroadcastReceiver
的调用都在同一个对象内,我不得不怀疑使用广播是否真的是一个好方法(但没有代码,这是一个假设)
要直接回答您的问题,您必须使用Intent
中的一个可过滤参数来区分这两个参数。例如,如果它们具有相同的操作,请在数据字段中设置不同的Uri
,或者为每个对象设置不同的MIME类型参数。然后,当您使用IntentFilter
注册接收器时,将这些特定参数从对象应用到过滤器。