我正在使用`“ ScreenCapture.CaptureScreenshot(pathToSave)”截取屏幕截图,并且可以很好地实现统一工作,即我的代码:
string timeStemp = System.DateTime.Now.ToString("dd-MM-yyyy-HH-mm-ss");
string fileName = "Screenshoot" + timeStemp + ".png";
string pathToSave = Application.persistentDataPath + "/" + fileName;
但是当我构建游戏并在Android上运行它时,它无法正常工作。 使用“ Android devise monitor”,我可以看到以下错误:
关于如何解决此问题的任何想法?
答案 0 :(得分:0)
这是权限问题吗(因为您可以看到错误提示它无法存储,不接受它)?也许您可以尝试更改输出目录(将其放在应用程序的文件夹中很奇怪)
请求存储权限(请注意,您可能希望向android 6.0以上版本的用户请求访问权限)
<manifest ...>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
</manifest>
您还可以检查空间
/* Checks if external storage is available for read and write */
public boolean isExternalStorageWritable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
/* Checks if external storage is available to at least read */
public boolean isExternalStorageReadable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state) ||
Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
return true;
}
return false;
}
答案 1 :(得分:0)
只想解决问题(最好迟到再也没有)。 我使用了以下免费的“资产存储”插件:[https://assetstore.unity.com/packages/tools/integration/android-runtime-permissions-117803][1]
用一个简单的代码(检查权限并要求他们)就拥有了我所需要的一切,起初它不起作用,在与编写代码的另一个好人聊天之后,我们发现删除了:”清单中权限行末尾的android:maxSdkVersion =“ 18”“使其生效。现在,我可以请求权限。谢谢大家!