首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >统一游戏-使保存的数据私有(对我的应用程序以外的其他不可见的)

统一游戏-使保存的数据私有(对我的应用程序以外的其他不可见的)
EN

Stack Overflow用户
提问于 2018-01-07 15:03:44
回答 1查看 1.1K关注 0票数 1

我使用Application.persistentDataPath路径来保存应用程序所需的图形内容。不幸的是,我无法强迫联合公司将其私有化(Android文档),因此visible可以被任何具有安卓基础知识的用户从path Android/data/com.mycompany.myapp/files/抓取。我尝试了更多的东西,其中设置播放器设置/对的写权限,内部没有解决这个问题。

我知道我可以创建本机意图并从Unity运行它们,但是看起来它是通过反射实现的,我需要非常快地加载数据

这个内容不能与应用程序一起交付(用户购买后下载),而且预计它将尽可能快地加载--它有很多图像--至少有200 at。

我怎样才能强制统一使用私有存储?或者如何至少对用户隐藏整个文件夹?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-08 11:58:26

我设法找到了一个简单的解决方案,下面是给您的:

我用我想要的私有文件夹的名称调用Android本机函数getDir,并将其存储到一个静态属性ap中。如果我没有使用安卓系统,我会使用Application.persistentDataPath

结果:

/storage/emulated/0/Android/data/com.mycomp.myapp/files返回persistentDataPath

getDir返回/data/user/0/com.mycomp.myapp/app_pFiles

完整代码:

代码语言:javascript
复制
public static class FolderHelper
{
    // cached value
    private static string ap;

    static FolderHelper()
    {
#if UNITY_ANDROID && !UNITY_EDITOR
        try
        {
            using (AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
            {
                using (AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity"))
                {
                    ap = jo.Call<AndroidJavaObject>("getDir", "pFiles", 0).Call<string>("getAbsolutePath");
                }
            }
        }
        catch (System.Exception e)
        {
            Debug.LogWarning(e.ToString());
            ap = Path.GetFullPath(Application.persistentDataPath);
        }
#else
        ap = Path.GetFullPath(Application.persistentDataPath);
#endif
    }


    // other code depending on property ap

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

https://stackoverflow.com/questions/48138417

复制
相关文章

相似问题

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