我想为用户提供保存当前屏幕截图的功能。 我正在使用cocos2d-x v3.0和c ++,并且是第一次实现此功能。 我做了一些谷歌搜索,发现了这段代码
此代码非常适合在ios照片中存储图像
public static IEnumerable<object> GetEmptyEnumerableOfClass(this Type type)
{
return (IEnumerable<object>) type.GetEmptyEnumerableOfType();
}
我要通过jni方法/字节数组将此图像传输到android
任何帮助都是有意义的
注意
getWritablePath();现在由于运行时权限问题而无法正常工作,因此不要建议我这样做
答案 0 :(得分:1)
对于Android方面:
我看不到任何清单代码,但这是创建路径所必需的。放在<application>
标签下的</application>
之前:
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.cognizant.expressprescriptionregistration.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
此外,如果您使用的是Android SDK 29,也请将其添加到清单中,并放在 <application
标记
android:requestLegacyExternalStorage="true"
在文件夹res下>布局> xml 添加“ file_paths.xml”
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path
name="any text you want here"
path="Pictures/"/>
</paths>
以及用于设置图像存储位置的Java代码
// Create the file where the photo will be stored
private File createPhotoFile() {
// Name of file
String name = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
// Location of storage
File storedDir = getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File photo = null;
try {
// Creates file in storedDir
photo = File.createTempFile(name, ".jpg", storedDir);
} catch (IOException e) {
e.printStackTrace();
}
return photo;
}