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);
     }
 }
Beispiel #3
0
        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;
        }
Beispiel #4
0
 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();
 }
Beispiel #5
0
 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;
 }
Beispiel #6
0
 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;
     }
 }
Beispiel #7
0
        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();
            }
        }
Beispiel #8
0
        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();
            }
        }
Beispiel #9
0
 /// <summary>
 /// OBEX协议服务
 /// </summary>
 public static ObexService GetObexNewInstance()
 {
     return(BlueToothDevice != null?ObexService.GetDefaultForBluetoothDevice(BlueToothDevice) : null);
 }