Файлы захвата отправляются через Bluetooth в С#

Я создаю приложение WPF для отправки и получения файлов через Bluetooth. Для этого я использую библиотеку 32feet. Я могу отправлять файлы с помощью Bluetooth-сервиса ObexObjectPush.

Но когда файлы получены с использованием метода, указанного здесь, не захватываются моим приложением, вместо этого их захватывает мой компьютер.

Вот мой код:

  private void Listener(CancellationTokenSource token)
    {
        try
        {
            while (true)
            {
                using (var client = _listener.AcceptBluetoothClient())
                {
                    if (token.IsCancellationRequested)
                    {
                        return;
                    }

                    using (var streamReader = new StreamReader(client.GetStream()))
                    {
                        try
                        {  
                           // ...  Custom operation
                          //....
                        }
                        catch (IOException ex)
                        {                               
                            client.Close();
                            break;
                        }
                    }
                }
            }
        }
        catch (Exception exception)
        {
            // todo handle the exception
        }
    }

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

Любая помощь в этом будет высоко оценена.


person Mohit Bora    schedule 25.06.2018    source источник
comment
что здесь делает streamReader? Я имею в виду, что он не получает файл?   -  person TAHA SULTAN TEMURI    schedule 25.06.2018
comment
Он не срабатывает, вместо этого появляется всплывающее окно, показывающее, что он получает файл.   -  person Mohit Bora    schedule 25.06.2018
comment
вы создали SenderBluetoothService?   -  person TAHA SULTAN TEMURI    schedule 25.06.2018
comment
Я отправляю данные с устройства Android, а не из приложения WPF. Хотя SenderBluetoothService, который я создал для WPF, успешно отправляет данные на устройство Android.   -  person Mohit Bora    schedule 25.06.2018
comment
Какие драйверы Bluetooth вы используете? Если это BlueSoleil или Toshiba, то они имеют встроенный сервер OPP и получают файл. Сначала вы должны отключить встроенные службы.   -  person Mike Petrichenko    schedule 25.06.2018
comment
@MikePetrichenko, как мне отключить встроенные службы?   -  person Mohit Bora    schedule 25.06.2018
comment
Это зависит от используемых вами драйверов Bluetooth. Конечно, если вы говорите о диалоге «Принять файл». Если вы говорите о диалоговом окне сопряжения системы, это другой вопрос. Но этот диалог также можно отключить.   -  person Mike Petrichenko    schedule 25.06.2018
comment
@MikePetrichenko Я использую программное обеспечение Intel PROSET/Wireless для драйвера BT. Пожалуйста, помогите мне, как отключить встроенные службы.   -  person Mohit Bora    schedule 26.06.2018
comment
К сожалению, я не знаю, как PROSET (потому что это что-то непопулярное) wotjs, но я уверен, что у него есть диалоговое окно настроек, где вы можете включать и отключать некоторые настройки.   -  person Mike Petrichenko    schedule 26.06.2018


Ответы (1)


Компьютер захватывает полученные файлы, потому что у него есть собственный обработчик Bluetooth, работающий и прослушивающий запросы.

Вам необходимо остановить службу Windows «Bluetooth OBEX Service» на вашем компьютере, чтобы она не могла обрабатывать полученные файлы вместо вашего приложения WPF.

ПРИМЕЧАНИЕ. Я предпочитаю отключать службу Windows «Служба Bluetooth OBEX», а не останавливать ее, потому что в некоторых случаях кажется, что некоторые другие службы вызывают повторный автоматический запуск этой службы. Отключив его, вы избежите путаницы в будущем.

person Ashraf Tirawi    schedule 14.08.2018