1
resposta

OnActivityResult não é chamado e diretório não é criado

Boa tarde.

A função StartActivityForResult só começou a funcionar depois que eu Não deixei habilitado a propriedade da camera.

public void TirarFoto()
 {
    Intent intent = new Intent(MediaStore.ActionImageCapture);
        arquivoImagem = PegarArquivoImagem();

       intent.PutExtra(MediaStore.ExtraOutput,
       Android.Net.Uri.FromFile(arquivoImagem));

       Activity activity = Forms.Context as Activity;
       activity.StartActivityForResult(intent, 0);// tentei mudar o valor de zero mas em algumas pesquisas que fiz descobri que não fazia diferença nesse caso
}

Apesar do WRITE_EXTERNAL_STORAGE estar habilitado não funciona a criação da pasta, verifiquei isso usando outro if para verificar se a pasta tinha sido criada.

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

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

     if (!diretorio.Exists())
     {
     }

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

Na Função OnActivityResult ela só é chamada quando eu cancelo a foto, quando clico no ok não faz nada

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
 {
    base.OnActivityResult(requestCode, resultCode, data);

    if (resultCode == Result.Ok)
    {
        MessagingCenter.Send<Java.IO.File>(arquivoImagem, "FotoTirada");
    }
    if (resultCode == Result.Canceled)
    {
     }
    if (resultCode == Result.FirstUser)
    {
    }
}
1 resposta

Oi André, tudo bem?

Qual a versão do Android (Target Framework) que você está utilizando no emulador?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software