我正在尝试使用Android广播接收器,我想在完成BT文件传输时调用(如果接收文件)。
用例: 设备(A)已与另一台蓝牙设备(B)配对,当B向设备A发送文件时,我希望我的广播接收器能够执行。
有没有办法实现它?
我尝试过滤以下事件,但它似乎是默认蓝牙应用的私人事件,仅用于 BluetoothShare 组件,该组件在文件完成时推送通知接待和不公开播出。因此,我的广播接收器不是通过实际文件传输调用真实设备,但是当我从ADB shell发送以下任何意图时,它在模拟器和真实设备中都有效。
以 AndroidManifest .xml:
过滤的意图"android.btopp.intent.extra.**BT_OPP_TRANSFER_STATUS**"
"android.btopp.intent.action.**BT_OPP_TRANSFER_DONE**"
"android.intent.action.**DOWNLOAD_COMPLETE**"
任何线索都会非常感激。 感谢
答案 0 :(得分:0)
您可以监控蓝牙的连接操作。当设备开始接收文件时,有一个连接动作,当它接受时,将有一个断开动作。您可以注册ACTION_ACL_DISCONNECTED
和onReceive
采取一些行动
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction() == BluetoothDevice.ACTION_ACL_DISCONNECTED) {
}
}
}
如下注册接收器:
IntentFileter blutoothFilter= new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED);
this.registerReceiver(mReceiver, blutoothFilter);