Передает ли android событие после завершения приема файлов Bluetooth, и если да, то каково намерение? - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь работать с приемником вещания Android, к которому я хочу обратиться после завершения передачи файла BT (в случае получения файла).

Вариант использования: устройство (A) уже подключенос другим Bluetooth-совместимым устройством (B) и когда B отправляет файл на устройство A, я хочу, чтобы мой широковещательный приемник запустился.

Есть ли способ добиться этого?

Я попытался выполнить фильтрацию по событиям ниже, но, похоже, это частные события приложения по умолчанию Bluetooth и предназначено только для компонента BluetoothShare , который отправляет уведомление назавершение приема файла и НЕ , транслируемый публично.В результате мой широковещательный приемник НЕ вызывается реальным устройством с фактической передачей файлов, но когда я отправляю любое из нижеперечисленных намерений из оболочки ADB, оно работает как в эмуляторе, так и на реальном устройстве.

Содержимое, отфильтрованное в 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 голосов
/ 23 мая 2018

Вы можете контролировать действие подключения Bluetooth.Когда устройство начинает получать файл, происходит связывающее действие, и после его завершения происходит отключающее действие.Вы можете зарегистрироваться для 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);
...