1
resposta

Erros Diferentes para StartActivityForResult em Versoes Diferentes do Android

No trecho de código:

public void TirarFoto() { var activity = Forms.Context as Activity; Intent intent = new Intent(MediaStore.ActionImageCapture);

        arquivoimagem = PegarArquivoImagem();

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

        activity.StartActivityForResult(intent, 0);

    }

Ao Executar o programa no Emulador da versão 9.0 do Android, dá o seguinte erro: 'file:///storage/emulated/0/Pictures/Imagens/MinhaFoto.jpg exposed beyond app through ClipData.Item.getUri()'. Existe um tópico com erro semelhante no fórum, mas não resolveu meu problema.

Ao executar com o emulador versão 6.0 dá o seguinte erro: Java.Lang.SecurityException: 'Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.android.camera/.Camera clip={text/uri-list U:file:///storage/emulated/0/Pictures/Imagens/MinhaFoto.jpg} (has extras) } from ProcessRecord{5a335a5 5819:com.companyname.testedrive/u0a63} (pid=5819, uid=10063) with revoked permission android.permission.CAMERA' Eu verifiquei o Manifesto do Android e foi colocada corretamente a permissão para a câmera.

1 resposta

Olá Rogério, tudo bem?

As versões mais antigas do framework são muito instáveis. É comum aparecer bugs deste tipo. Para ter um bom desempenho é recomendado utilizar as versões mais recentes.

Os arquivos das aulas usam o Xamarin Forms 2.3.3 e o .Net Framework ainda era a versão 4.5. Nessa época o Xamarin não era mantido pela Microsoft, então costumava ter muitos bugs.

Estamos vendo a possibilidade de atualizar os projetos das aulas.

Bons estudos!

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