Я пишу свое приложение для Android, в котором я хочу определить пользовательскую схему URI, чтобы пользователь мог перейти к моему приложению, введя URI в браузере, например: myapps: // cate = 1 & id = 3
Я успешно реализовал это в своих приложениях, но обнаружил, что для некоторых устройств браузер обрабатывает ссылку по-разному.
В моем HTC Flyer приложение открывается правильно, но в браузере Samsung Galaxy Aceпереводит ссылку на myapps% 3A% 2F% 2Fcate = 1% 26id = 3, которая зашифрована, и вместо этого просто откройте для меня «myapps: // cate = 1 & id = 3», а не откройте приложение.
Я определяю фильтр намерений в манифесте следующим образом:
<intent-filter >
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="myapps"/>
</intent-filter>
Любая помощь по этому вопросу?спасибо
РЕДАКТИРОВАНИЕ
Я только что посмотрел исходный код браузера Android, он определил, какую схему он принимает:
protected static final Pattern ACCEPTED_URI_SCHEMA = Pattern.compile(
"(?i)" + // switch on case insensitive matching
"(" + // begin group for schema
"(?:http|https|file):\\/\\/" +
"|(?:inline|data|about|content|javascript):" +
")" +
"(.*)" );
Теперь я понимаюпочему нестандартная схема не сработает!Любые приложения должны фиксировать только схемы: http, https, файл, inline, данные, about, content, javascript.