Pergunta

Eu declarei o modo de inicialização da minha atividade como singleTask.Se eu inicie meu aplicativo, pressione o botão home, vá para um cliente de e-mail (gmail, neste caso) e visualizar um anexo usando meu aplicativo, eu estou tendo uma exceção de segurança nas versões 2.3 e posteriores do Android, que diz que não tenho permissão para acessar o gmail anexos.A exceção não ocorre em versões anteriores e se eu fizer não use singleTask como launchMode.

A exceção ocorre nesta linha-

mContext.getContentResolver().openInputStream(intent.getData());

onde mContext é o contexto da atividade.

Este é um problema conhecido?

Qualquer ajuda será muito apreciada.

Obrigado,

Akshay

Foi útil?

Solução

Eu postei isso no Android-developers e recebi essa resposta de Dianne Hackborn-

"Desculpe, provavelmente este é um bug em 2.3 ao tentar conceder uma permissão de URI a uma instância de atividade que já está em execução. Vou examinar isso. Enquanto isso, a única solução pode ser nãouse singleTask para a atividade que está sendo iniciada para uma visualização de um anexo. Esta é realmente a coisa preferida a fazer, uma vez que sua atividade de visualização deve ser executada como sua própria instância como parte da tarefa do Gmail. "

Outras dicas

O problema pode ocorrer porque a atividade do intent chamado na implementação do 2.3 não se ajusta aos requisitos launchMode:"standard" ou launchMode:"singleTop" declarados em android: descrição do launchMode .

Mas também seria útil dar uma olhada em este problema:Comportamento de launchMode= “singleTask” não conforme descrito .É assustador, espero que seu problema não esteja enraizado aí e possa ser resolvido com as versões atuais.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top