我使用Application.persistentDataPath路径来保存应用程序所需的图形内容。不幸的是,我无法强迫联合公司将其私有化(Android文档),因此visible和可以被任何具有安卓基础知识的用户从path Android/data/com.mycompany.myapp/files/抓取。我尝试了更多的东西,其中设置播放器设置/对的写权限,内部没有解决这个问题。
我知道我可以创建本机意图并从Unity运行它们,但是看起来它是通过反射实现的,我需要非常快地加载数据
这个内容不能与应用程序一起交付(用户购买后下载),而且预计它将尽可能快地加载--它有很多图像--至少有200 at。
我怎样才能强制统一使用私有存储?或者如何至少对用户隐藏整个文件夹?
发布于 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
完整代码:
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
}https://stackoverflow.com/questions/48138417
复制相似问题