c# - 捕获文件在 C# 中通过蓝牙发送

标签 c# bluetooth 32feet obex

我正在创建一个 WPF 应用程序,用于通过蓝牙发送和接收文件。我正在使用 32feet 库。我可以使用 ObexObjectPush 蓝牙服务发送文件。

但是当使用该技术接收文件时,指定 here , 没有被我的应用程序捕获,而是我的计算机捕获了它。

这是我的代码:

  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 OBEX 服务”Windows 服务,以防止它处理接收到的文件而不是您的 WPF 应用程序。

注意:我更愿意禁用“Bluetooth OBEX 服务”Windows 服务而不是停止它,因为在某些情况下似乎有一些其他服务导致该服务再次自动启动.通过禁用它,您将避免任何 future 的混淆。

关于c# - 捕获文件在 C# 中通过蓝牙发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51017607/

相关文章:

c# - ICollection、只读集合和同步。这是正确的吗?

android - 有没有办法在我的 Android 应用程序中暂停(或静音)默认音乐播放器?

c# - 蓝牙和 C# PC -> 无需配对的手机连接

c# - 我如何在 EF Code First 中声明数据类型为 Medium Blob 的表上的字段

c# - Delphi 7 和 __ArrayList

c# - 如何在 Linq 或 SQL 中递归调用 Where 子句

android - Nearby Connections 2.0 : Both sides request connections, 但连接不成功

java - 489次成功连接后android蓝牙连接失败

C# 建立从笔记本电脑内部蓝牙 4.0 到低功耗蓝牙 (BLE) 外围设备的流