Как игнорировать определенный набор URL-адресов из Intent Filter. Существующий фильтр.
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="www.example.com" android:scheme="http" />
<data android:host="www.example.com" android:scheme="https" />
<data android:host="example.com" android:scheme="http" />
<data android:host="example.com" android:scheme="https" />
</intent-filter>
С указанным выше фильтром все URL-адреса открываются в приложении. Я хочу игнорировать несколько URL-адресов, и его нужно открыть с помощью браузера. Примеры URL, которые следует игнорировать.
https://www.example.com/privacy-policy
https://www.example.com/tos
https://www.example.com/faq
Приведенный ниже код напрямую открывает приложение.
Uri uri = Uri.parse("https://www.example.com/privacy-policy");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent); // Opens the app directly.
// startActivity(Intent.createChooser(intent, "Select browser")); // Shows current app only.
<intent-filter>
— это белый, а не черный список. В<intent-filter>
нет механизма исключений. Вам нужно будет придумать правильный набор элементов<intent-filter>
и<data>
, чтобы перечислить все URL-адреса, которые вы поддерживаете. Это будет довольно долго. - person CommonsWare   schedule 16.04.2016