Pergunta

Existem etapas diferentes para registrar uma atividade do Android como uma intenção NAVEGÁVEL no Android 2.3 (API de nível 10) e versões anteriores?

Configurei uma atividade com um filtro de intenções que usa um esquema personalizado:

<intent-filter>
    <action name="android.intent.action.VIEW"/>
    <category name="android.intent.category.DEFAULT"/>
    <category name="android.intent.category.BROWSABLE"/>
    <data scheme="@string/myCallbackProtocol"/>
</intent-filter>

Em um dispositivo físico executando 2.3 e com o simulador do SDK definido como 2.3, o aplicativo do navegador direciona links usando meu protocolo personalizado para o aplicativo.

No entanto, se eu reduzir o simulador para 2.2 ou 2.1, o navegador não redirecionará, mas indicará que o servidor não pode ser encontrado.Não tenho um dispositivo real executando esses níveis de API.

Gostaria de lançar meu aplicativo para que seja compatível com dispositivos com versão 2.1 e superior.Estou errado em presumir que isso deveria ser possível?De acordo com Documentos Android Intent.CATEGORY_BROWSABLE está disponível desde 1.0.

Obrigado!

Foi útil?

Solução 2

Resolvido. BROWSABLE funciona pelo menos até o Android 2.1.Antes do 2.3 parece que carregar o <data scheme=""> de um recurso de string faz com que a atividade não seja registrada corretamente.

Alterando a @string/ a referência a um valor codificado produz o resultado desejado.

<intent-filter>
    <action name="android.intent.action.VIEW"/>
    <category name="android.intent.category.DEFAULT"/>
    <category name="android.intent.category.BROWSABLE"/>
    <data scheme="my-custom-protocol"/>
</intent-filter>

Outras dicas

Não tive problemas em usar BROWSABLE voltando pelo menos para 2.1, se não antes.No entanto, não implementei um esquema personalizado, muito menos um definido em um recurso de string. Aqui está um exemplo de projeto demonstrando o uso de BROWSABLE.

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