Отобразить изображение в галерею телефона пользователя - PullRequest
0 голосов
/ 19 февраля 2019

Я работаю над игрой, в которой есть возможность делать скриншоты и сохранять их в папке проекта в Windows и в папке файлов com.package в Android.Беспокоили 2 шага:

1) Когда я хочу увидеть картинку из родной галереи или через приложение Google Photos, я не могу найти картинки.Но когда я ищу в папке com.package, они присутствуют там.

2) Как создать отдельную папку во внутренней памяти телефона для игры и сохранить там все картинки.

Для сохранения картинки я использую Application.persistentpath.Есть ли другие моменты, которые я упускаю.

1 Ответ

0 голосов
/ 20 февраля 2019

Чтобы сохранить изображение по пути, по которому может быть доступна Галерея телефона,

Сначала вы должны получить разрешение на чтение / запись (READ_EXTERNAL_STORAGE / WRITE_EXTERNAL_STORAGE).

Вы можете установить опциюв Unity Editor «Настройки проигрывателя»> «Другие настройки»> «Конфигурация»> «Разрешение на запись»> «Внешняя (SDCard)» (https://docs.unity3d.com/2018.3/Documentation/Manual/class-PlayerSettingsAndroid.html)

Или вы можете запросить разрешениесамостоятельно (https://docs.unity3d.com/Manual/android-RequestingPermissions.html).

Во-вторых, вы должны сохранить изображение на внешнем хранилище, как показано ниже.

using System.IO;

void SavePicture(byte[] texture)
{
    string path = GetExternalStoragePath() + "/picture";
    string fileName = "picture.png";

    if (!Directory.Exists(path))
        Directory.CreateDirectory(path);

    File.WriteAllBytes(path + "/" + fileName, texture);
}

string GetExternalStoragePath()
{
    AndroidJavaClass env = new AndroidJavaClass("android.os.Environment");
    AndroidJavaObject dir = env.CallStatic<AndroidJavaObject>("getExternalStorageDirectory");
    return dir.Call<string>("toString");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...