private async void ContentDialog_SecondaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args) { var Deferral = args.GetDeferral(); if (SecondaryButtonText == "中止") { args.Cancel = true; AbortFromHere = true; try { await ObexClient.AbortAsync(); } catch (Exception) { } } else if (SecondaryButtonText == "重试") { args.Cancel = true; ProgressText.Text = "0%"; ObexClient.DataTransferFailed -= ObexClient_DataTransferFailed; ObexClient.DataTransferProgressed -= ObexClient_DataTransferProgressed; ObexClient.DataTransferSucceeded -= ObexClient_DataTransferSucceeded; ObexClient.ConnectionFailed -= ObexClient_ConnectionFailed; ObexClient.Aborted -= ObexClient_Aborted; ObexClient.Disconnected -= ObexClient_Disconnected; ObexClient.DeviceConnected -= ObexClient_DeviceConnected; ObexClient = ObexServiceProvider.GetObexNewInstance(); ObexClient.DataTransferFailed += ObexClient_DataTransferFailed; ObexClient.DataTransferProgressed += ObexClient_DataTransferProgressed; ObexClient.DataTransferSucceeded += ObexClient_DataTransferSucceeded; ObexClient.ConnectionFailed += ObexClient_ConnectionFailed; ObexClient.Aborted += ObexClient_Aborted; ObexClient.Disconnected += ObexClient_Disconnected; ObexClient.DeviceConnected += ObexClient_DeviceConnected; try { ProgressControl.Value = 0; CloseButtonText = ""; SecondaryButtonText = "中止"; await ObexClient.ConnectAsync(); await ObexClient.SendFileAsync(ToDeleteFile); } catch (Exception) { ProgressText.Text = "尝试重新连接失败"; } } Deferral.Complete(); }
/// <summary> /// OBEX协议服务 /// </summary> public static ObexService GetObexInstance() { if (BlueToothDevice != null) { return(ObexService.GetDefaultForBluetoothDevice(BlueToothDevice)); } else { return(null); } }
public BluetoothFileTransfer(StorageFile FileToSend) { InitializeComponent(); this.FileToSend = FileToSend ?? throw new ArgumentNullException(nameof(FileToSend), "Parameter could not be null"); ObexClient = ObexServiceProvider.GetObexInstance(); TransferName.Text = $"{Globalization.GetString("Bluetooth_Transfer_FileName")}: {FileToSend.Name}"; TransferDeviceName.Text = $"{Globalization.GetString("Bluetooth_Transfer_DeviceName")}: {ObexServiceProvider.DeviceName}"; Loaded += BluetoothFileTransfer_Loaded; Closing += BluetoothFileTransfer_Closing; }
public async void StartService(BluetoothDevice BTDevice) { BtDevice = BTDevice; obexService = ObexService.GetDefaultForBluetoothDevice(BtDevice); obexService.Aborted += obexService_Aborted; obexService.ConnectionFailed += obexService_ConnectionFailed; obexService.DataTransferFailed += obexService_DataTransferFailed; obexService.DataTransferProgressed += obexService_DataTransferProgressed; obexService.DataTransferSucceeded += obexService_DataTransferSucceeded; obexService.DeviceConnected += obexService_DeviceConnected; obexService.Disconnected += obexService_Disconnected; obexService.Disconnecting += obexService_Disconnecting; obexService.ServiceConnected += obexService_ServiceConnected; await obexService.ConnectAsync(); }
public void Activate(object parameter, Dictionary <string, object> state) { DeviceListVisibility = true; FileListVisibility = false; obexService = null; BtDevice = null; if (parameter != null) { if (parameter.GetType() == typeof(string)) { s = ParamConvert.ToStringArray(parameter as string); } } Start(); BluetoothManager.FailedHandler += BluetoothManager_FailedHandler; BluetoothManager.ChangeProgressHandler += BluetoothManager_ChangeProgressHandler; BluetoothManager.ChangeStatusHandler += BluetoothManager_ChangeStatusHandler; BluetoothManager.RemoveFirstFileHandler += BluetoothManager_RemoveFirstFileHandler; BluetoothManager.SetDevicesListHandler += BluetoothManager_SetDevicesListHandler; BluetoothManager.TransferCompletedHandler += BluetoothManager_TransferCompletedHandler; }
async void obexService_DeviceConnected(object sender, EventArgs e) { if (this.filesToShare.Count > 0) { //filesToShare[0].ShareStatus = FileShareStatus.Connecting; OnChangeStatus(FileShareStatus.Connecting); await obexService.SendFileAsync(filesToShare[0].FileToShare); } else { obexService.Aborted -= obexService_Aborted; obexService.ConnectionFailed -= obexService_ConnectionFailed; obexService.DataTransferFailed -= obexService_DataTransferFailed; obexService.DataTransferProgressed -= obexService_DataTransferProgressed; obexService.DataTransferSucceeded -= obexService_DataTransferSucceeded; obexService.DeviceConnected -= obexService_DeviceConnected; obexService.Disconnected -= obexService_Disconnected; obexService.Disconnecting -= obexService_Disconnecting; obexService.ServiceConnected -= obexService_ServiceConnected; obexService = null; } }
async void obexService_Disconnected(object sender, EventArgs e) { obexService.Aborted -= obexService_Aborted; obexService.ConnectionFailed -= obexService_ConnectionFailed; obexService.DataTransferFailed -= obexService_DataTransferFailed; obexService.DataTransferProgressed -= obexService_DataTransferProgressed; obexService.DataTransferSucceeded -= obexService_DataTransferSucceeded; obexService.DeviceConnected -= obexService_DeviceConnected; obexService.Disconnected -= obexService_Disconnected; obexService.Disconnecting -= obexService_Disconnecting; obexService.ServiceConnected -= obexService_ServiceConnected; obexService = null; if (filesToShare.Count.Equals(0)) { OnTransferCompleted(AppConstants.FilesSharedOK); } else if (this.filesToShare[0].ShareStatus.Equals(FileShareStatus.Error) || this.filesToShare[0].ShareStatus.Equals(FileShareStatus.Cancelled)) { OnTransferCompleted(AppConstants.FilesSharedError); } else { obexService = ObexService.GetDefaultForBluetoothDevice(BtDevice); obexService.DeviceConnected += obexService_DeviceConnected; obexService.ServiceConnected += obexService_ServiceConnected; obexService.ConnectionFailed += obexService_ConnectionFailed; obexService.DataTransferProgressed += obexService_DataTransferProgressed; obexService.DataTransferSucceeded += obexService_DataTransferSucceeded; obexService.DataTransferFailed += obexService_DataTransferFailed; obexService.Disconnecting += obexService_Disconnecting; obexService.Disconnected += obexService_Disconnected; obexService.Aborted += obexService_Aborted; await obexService.ConnectAsync(); } }
private async void QueueContentDialog_SecondaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args) { var Deferral = args.GetDeferral(); try { if (SecondaryButtonText == Globalization.GetString("Bluetooth_Transfer_RetryButton")) { args.Cancel = true; ProgressControl.IsIndeterminate = true; ProgressText.Text = "0%"; ObexClient.DataTransferFailed -= ObexClient_DataTransferFailed; ObexClient.DataTransferProgressed -= ObexClient_DataTransferProgressed; ObexClient.DataTransferSucceeded -= ObexClient_DataTransferSucceeded; ObexClient.ConnectionFailed -= ObexClient_ConnectionFailed; ObexClient.Aborted -= ObexClient_Aborted; ObexClient.Disconnected -= ObexClient_Disconnected; ObexClient.DeviceConnected -= ObexClient_DeviceConnected; ObexClient = ObexServiceProvider.GetObexInstance(); ObexClient.DataTransferFailed += ObexClient_DataTransferFailed; ObexClient.DataTransferProgressed += ObexClient_DataTransferProgressed; ObexClient.DataTransferSucceeded += ObexClient_DataTransferSucceeded; ObexClient.ConnectionFailed += ObexClient_ConnectionFailed; ObexClient.Aborted += ObexClient_Aborted; ObexClient.Disconnected += ObexClient_Disconnected; ObexClient.DeviceConnected += ObexClient_DeviceConnected; try { ProgressControl.Value = 0; CloseButtonText = string.Empty; SecondaryButtonText = Globalization.GetString("BluetoothTranfer.SecondaryButtonText"); await ObexClient.ConnectAsync().ConfigureAwait(true); await ObexClient.SendFileAsync(FileToSend).ConfigureAwait(true); } catch (Exception) { ProgressText.Text = Globalization.GetString("Bluetooth_Transfer_Description_6"); } } else { args.Cancel = true; AbortFromHere = true; try { await ObexClient.AbortAsync().ConfigureAwait(true); } catch (Exception) { } } } finally { Deferral.Complete(); } }
/// <summary> /// OBEX协议服务 /// </summary> public static ObexService GetObexNewInstance() { return(BlueToothDevice != null?ObexService.GetDefaultForBluetoothDevice(BlueToothDevice) : null); }