我已经成功实现了一个库,用于通过 Windows Phone 8.1 应用程序(C#)上的 Obex 对象推送配置文件通过蓝牙发送文件。无论如何,我还需要实现相反的方向(通过 OPP 接收文件),但我无法找到覆盖现有 OPP 系统服务的方法。问题是,当文件从设备发送到我的 Windows Phone 应用程序时,系统服务首先“捕获”它(并显示消息“DeviceX 正在与您共享文件,接收内容?”)。如果我尝试使用 RfcommConnectionTrigger 并注册由传入的 ObexObjectPush 请求触发的后台任务,则会引发异常:“该进程无法访问该文件,因为它正在被另一个进程使用。(来自 HRESULT 的异常:0x80070020)”。我想另一个进程是系统服务。有谁知道解决这个问题?我在下面报告后台任务注册的代码:
string taskName = RfcommServiceId.ObexObjectPush.AsString();
if (BackgroundTaskRegistration.AllTasks.Values.SingleOrDefault(x => x.Name == taskName) == null)
{
RfcommConnectionTrigger trigger = new RfcommConnectionTrigger
{
};
trigger.InboundConnection.LocalServiceId = RfcommServiceId.ObexObjectPush;//OPPprovider.ServiceId;
BackgroundTaskBuilder builder = new BackgroundTaskBuilder
{
Name = taskName,
TaskEntryPoint = "WP_OPPServerBackgroundTask.OppTask",
};
builder.SetTrigger(trigger);
builder.Register();
}
在此先感谢您提供有关此主题的任何提示 Lorenzo