Ao tirar a foto o arquivo não está sendo salvo no diretório e nem com o nome que eu informei no intent.
public void TirarFoto()
{
Intent intent = new Intent(MediaStore.ActionImageCapture);
arquivoImagem = CriarArquivoImagem();
intent.PutExtra(MediaStore.ExtraOutput, arquivoImagem);
var activity = Forms.Context as Activity;
activity.StartActivityForResult(intent, 0);
}
public Java.IO.File CriarArquivoImagem()
{
Java.IO.File diretorio = new Java.IO.File(
Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures), "tmws_app");
if (!diretorio.Exists())
diretorio.Mkdirs();
return arquivoImagem = new Java.IO.File(diretorio, DateTime.Now.ToString("yyyyMMddHHmmss") + ".jpg");
}
Por causa disso ao chamar o OnActivityResult o arquivo não é encontrado para ser convertido em byte[]
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
if (resultCode == Result.Ok)
{
byte[] bytes = new byte[arquivoImagem.Length()];
using (var stream = new Java.IO.FileInputStream(arquivoImagem))
{
stream.Read(bytes);
}
MessagingCenter.Send<byte[]>(bytes, "ArquivoImagem");
}
}
Estou usando vs2017. Eu notei que o Forms.Context está marcado como obsoleto, seria essa a origem do problema ou é alguma outra coisa?