Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Caminho da Foto Tirada

Estou fazendo uma aplicação que necessito armazenar no banco de dados o caminho onde estão armazenadas as fotos tiradas com a câmera. Como faço para obter este caminho?

1 resposta
solução!

Olá, Edgar

Não recomendo gravar o caminho inteiro do arquivo porque, como vimos no curso, o diretório é determinado pelo próprio sistema operacional android, pela expressão:

Android.OS.Environment.GetExternalStoragePublicDirectory(
        Android.OS.Environment.DirectoryPictures), "Imagens");

O código completo está na classe MainActivity.cs:

private static Java.IO.File PegarArquivoImagem()
{
    Java.IO.File arquivoImagem;
    Java.IO.File diretorio = new Java.IO.File(
        Android.OS.Environment.GetExternalStoragePublicDirectory(
        Android.OS.Environment.DirectoryPictures), "Imagens");

    if (!diretorio.Exists())
        diretorio.Mkdirs();

    arquivoImagem =
        new Java.IO.File(diretorio, "MinhaFoto.jpg");
    return arquivoImagem;
}

O que eu faria é gravar o nome da pasta "MinhaPasta" + barra + nome do arquivo. Exemplo:

string nomeArquivo = "MinhaFoto.jpg";
Imagem imagem = new Model.Imagem();
imagem.Caminho = $"MinhaPasta\{nomeArquivo }";

E para recuperar o arquivo, eu faria o contrário, restaurando o diretório de imagens do Android:

Java.IO.File diretorio = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures));

var arquivoImagem =
        new Java.IO.File(diretorio, imagem.Caminho);