首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >统一获得MTP装置

统一获得MTP装置
EN

Stack Overflow用户
提问于 2020-05-22 17:16:39
回答 1查看 209关注 0票数 0

你好,我目前正在为一个课程项目开发一个关于团结的游戏,我绝对必须能够从我的电脑上将我的备份文件存储在我的手机上,而且我还必须能够检索它们。我在windows 10上有android手机,团结2019.3.14f1。

我尝试使用NuGet MediaDevice包,如下所示:

代码语言:javascript
复制
 public static void CopySaveFromDevice()
    {
        var devices = MediaDevice.GetDevices();
        Debug.Log(devices);
        using (var device = devices.First(d => d.FriendlyName == "Mi Note 10"))
        {
            Debug.Log(device);
            device.Connect();
            var savesDir = device.GetDirectoryInfo(@"/Treen/Saves");

            var files = savesDir.EnumerateFiles("*.tree", SearchOption.TopDirectoryOnly);

            foreach (var file in files)
            {
                MemoryStream memoryStream = new System.IO.MemoryStream();
                device.DownloadFile(file.FullName, memoryStream);
                memoryStream.Position = 0;
                WriteStreamToDisk(Application.persistentDataPath + "/Saves/" + file.Name, memoryStream);
            }
            device.Disconnect();
        }

    }

    static void WriteStreamToDisk(string filePath, MemoryStream memoryStream)
    {
        using (FileStream file = new FileStream(filePath, FileMode.Create, System.IO.FileAccess.Write))
        {
            byte[] bytes = new byte[memoryStream.Length];
            memoryStream.Read(bytes, 0, (int)memoryStream.Length);
            file.Write(bytes, 0, bytes.Length);
            memoryStream.Close();
        }
    }

但我有个错误:

代码语言:javascript
复制
NullReferenceException: Object reference not set to an instance of an object
MediaDevices.MediaDevice.GetDevices () (at <016781043aa441d5b0169b9d5116ee77>:0)
ManageSaves.CopySaveFromDevice () (at Assets/Scripts/ManageSaves.cs:65)
ManageSaves.Testing () (at Assets/Scripts/ManageSaves.cs:57)
MainMenu.Testing () (at Assets/Scripts/MainMenu.cs:69)
UnityEngine.Events.InvokableCall.Invoke () (at <23a7799da2e941b88c6db790c607d655>:0)
UnityEngine.Events.UnityEvent.Invoke () (at <23a7799da2e941b88c6db790c607d655>:0)
UnityEngine.UI.Button.Press () (at C:/Program Files/Unity/Hub/Editor/2019.3.14f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/UI/Core/Button.cs:68)
UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at C:/Program Files/Unity/Hub/Editor/2019.3.14f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/UI/Core/Button.cs:110)
UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at C:/Program Files/Unity/Hub/Editor/2019.3.14f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/ExecuteEvents.cs:50)
UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at C:/Program Files/Unity/Hub/Editor/2019.3.14f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/ExecuteEvents.cs:261)
UnityEngine.EventSystems.EventSystem:Update() (at C:/Program Files/Unity/Hub/Editor/2019.3.14f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/EventSystem.cs:377)

当我不团结时,代码会检测设备。因此,我得出结论,它在统一环境中不起作用:/

你知道如何解决这个或另一个方法,以节省我的手机在有线模式?也许是免费的资产?

EN

回答 1

Stack Overflow用户

发布于 2020-05-23 13:02:58

我强烈建议您不要使用MTP Device文件路径。为了您的目的,我可以告诉您创建TCP套接字来将文件移动到设备上。阅读更多这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61960449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档