android是否在完成蓝牙文件接收时广播事件,如果是,则是Intent?

时间:2018-05-23 06:31:17

标签: android bluetooth broadcastreceiver

我正在尝试使用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**"

任何线索都会非常感激。 感谢

1 个答案:

答案 0 :(得分:0)

您可以监控蓝牙的连接操作。当设备开始接收文件时,有一个连接动作,当它接受时,将有一个断开动作。您可以注册ACTION_ACL_DISCONNECTEDonReceive采取一些行动

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);