コード例 #1
0
        public override void OnTransferUpdate(string Endpoint, TransferStateUpdate update)
        {
            long transferredBytes = update.BytesTransferred;
            long totalBytes       = update.TotalBytes;
            long payloadId        = update.DataId;

            Log.Debug(MainActivity.TAG, "onTransferUpdate, payloadId============" + payloadId);
            switch (update.Status)
            {
            case TransferStatus.TransferStateSuccess:
                Log.Debug(MainActivity.TAG, "onTransferUpdate.Status============success.");
                Data payload = null;
                if (context.IncomingFilePayloads.ContainsKey(payloadId))
                {
                    payload = context.IncomingFilePayloads[payloadId];
                }

                if (payload != null)
                {
                    if (payload.Type == Huawei.Hms.Nearby.Transfer.DataType.File)
                    {
                        Toast.MakeText(context, "Your friend shares a file with you.", ToastLength.Long).Show();
                    }
                    Log.Debug(MainActivity.TAG, "onTransferUpdate, payload.Type " + payload.Type);
                    if (context.Dialog.PayloadID == payloadId)
                    {
                        context.Dialog.Dismiss();
                    }
                    context.CompletedFilePayloads.Add(payloadId, payload);
                    context.IncomingFilePayloads.Remove(payloadId);
                    context.FilePayloadFilenames.Remove(payloadId);
                }
                break;

            case TransferStatus.TransferStateInProgress:
                Log.Debug(MainActivity.TAG, "onTransferUpdate.Status==========transfer in progress.");
                if (!context.IncomingFilePayloads.ContainsKey((payloadId)))
                {
                    if (!context.FilePayloadFilenames.ContainsKey(payloadId))
                    {
                        return;
                    }
                }
                int progress = (int)(transferredBytes * 100 / totalBytes);
                context.UpdateProgress(transferredBytes, progress, totalBytes);
                string FeedbackUpdate        = transferredBytes.ToString() + "_" + progress.ToString() + "_" + totalBytes.ToString() + "_ProgressUpdate";
                Data   FeedbackUpdatePayload = Data.FromBytes(System.Text.Encoding.UTF8.GetBytes(FeedbackUpdate));
                MainActivity.mTransferEngine.SendData(Endpoint, FeedbackUpdatePayload).AddOnSuccessListener(new TaskListener(context, "Feedback sent")).AddOnFailureListener(new TaskListener(context, "Feedback sent"));
                break;

            case TransferStatus.TransferStateFailure:
                Log.Debug(MainActivity.TAG, "onTransferUpdate.Status==========transfer failed.");
                Log.Debug(MainActivity.TAG, "Cancel Data Transfer");
                if (context.Dialog.PayloadID == payloadId)
                {
                    context.Dialog.Dismiss(); MainActivity.mTransferEngine.CancelDataTransfer(payloadId).AddOnSuccessListener(new TaskListener(context, "Cancel Transfer")).AddOnFailureListener(new TaskListener(context, "Cancel Transfer"));
                }
                break;

            default:
                Log.Debug(MainActivity.TAG, "onTransferUpdate.Status=======" + update.Status);
                return;
            }
        }
コード例 #2
0
 public void onTransferUpdate(string endpointId, TransferStateUpdate update)
 {
     Debug.Log("[HMS] NearbyManager onTransferUpdate");
 }