Nível da API de intenção NAVEGÁVEL do Android
-
15-11-2019 - |
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!
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
.