Android - добавление хотя бы одного действия с фильтром намерений ACTION-VIEW после обновления SDK версии 23

305

Я получаю следующую подсказку в AndroidManifest.xml :

Приложение не индексируется поиском Google; рассмотрите возможность добавления хотя бы одного действия с наполнителем намерений ACTION-VIEW. См. Объяснение проблемы для более подробной информации.

Добавляет глубокие ссылки, чтобы добавить ваше приложение в индекс Google, чтобы получать установки и трафик на ваше приложение из поиска Google.

введите описание изображения здесь

Кто-нибудь может объяснить, почему это так?

Пратик Бутани
источник
Чтобы увидеть это в действии, смотрите здесь: stackoverflow.com/questions/56631387/…
user1506104

Ответы:

239

Из официальной документации:

Чтобы разрешить Google сканировать контент вашего приложения и разрешить пользователям входить в ваше приложение из результатов поиска, вы должны добавить фильтры намерений для соответствующих действий в манифесте вашего приложения. Эти фильтры намерений позволяют делать глубокие ссылки на контент в любой вашей деятельности. Например, пользователь может щелкнуть глубокую ссылку, чтобы просмотреть страницу в приложении для покупок, которая описывает предложение продукта, которое ищет пользователь.

Используя эту ссылку Включение глубоких ссылок для контента приложения, вы увидите, как его использовать.

И с помощью этого Протестируйте реализацию индексации вашего приложения, как это проверить.

В следующем фрагменте XML показано, как можно указать фильтр намерений в манифесте для глубоких ссылок.

<activity
    android:name="com.example.android.GizmosActivity"
    android:label="@string/title_gizmos" >
    <intent-filter android:label="@string/filter_title_viewgizmos">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
        <data android:scheme="http"
              android:host="www.example.com"
              android:pathPrefix="/gizmos" />
        <!-- note that the leading "/" is required for pathPrefix-->
        <!-- Accepts URIs that begin with "example://gizmos” -->
        <data android:scheme="example"
              android:host="gizmos" />

    </intent-filter>
</activity>

Чтобы проверить через Android Debug Bridge

$ adb shell am start
        -W -a android.intent.action.VIEW
        -d <URI> <PACKAGE>

$ adb shell am start
        -W -a android.intent.action.VIEW
        -d "example://gizmos" com.example.android
Mk.Sl.
источник
5
@ user25 схема - это схема uri, схема может быть http, https, ftp и т. д.
Bhargav
89
ну все это для конкретных приложений, тогда зачем показывать это предупреждение? не все приложения нуждаются в этом, не все приложения имеют веб-просмотр некоторых сайтов. Google так раздражает ..
user924
64
Это может быть подавлено в любом случае с инструментами: игнорировать = «GoogleAppIndexingWarning»
ecle
12
Любопытно, что в предупреждении говорится, что вам нужен ACTION-VIEWфильтр намерений, но решение включает в себя action.VIEW. Аналогично, по ссылке в Android Studio вы попадете на веб-страницу, где ACTION-VIEWне отображаются. Меньшее, что они могут сделать с помощью навязчивых предупреждений, - это дать вам точные сообщения и справочные страницы.
Джон Перри
7
@ecle Где можно поставить эту опцию? / Неважно; Я нашел это: нужно добавить xmlns:tools="http://schemas.android.com/tools"в manifestтег, а затем добавить tools:ignore...в applicationтег.
Джон Перри
190

Вы можете удалить предупреждение, добавив ниже код <intent-filter>внутри<activity>

<action android:name="android.intent.action.VIEW" />
Бибин Джонни
источник
6
Эта работа для меня. Я думаю, что это ответ, который я ищу.
Махмудур Рахман
13
Это кажется правильным решением, если вы не хотите включать индексацию приложений. Вместо того, чтобы просто удалить предупреждение через tools:ignore="GoogleAppIndexingWarning". Я добавил это как родного брата <action android:name="android.intent.action.MAIN" />в основной деятельности.
Даниэль Ф
4
но зачем нам эта строка в коде вслепую? какая-то конкретная причина?
Ганшьям Найма
15
@GhanshyamNayma добавление этой строки просто удаляет предупреждение. Без дополнительного кода, необходимого для добавления фактической индексации приложения. Не совсем лучшая практика, но я понимаю, что предупреждения раздражают. Я бы просто пошел tools:ignore="GoogleAppIndexingWarning"вместо этого, потому что тогда вы не будете добавлять пустой ACTION_VIEW. Это может не вызвать никаких проблем, но вы всегда хотите быть в безопасности.
Карсон Дж.
8
ах, вот почему так много случайных приложений появляются для ACTION_VIEW сейчас ... eesh
CCJ
135
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.app"
tools:ignore="GoogleAppIndexingWarning">

Вы можете удалить предупреждение, добавив xmlns:tools="http://schemas.android.com/tools"и tools:ignore="GoogleAppIndexingWarning"к <manifest>тегу.

Пэт Ли
источник
3
Это работает для меня, и именно то решение, которое я искал.
Саян Сил
Это идеальное решение.
Рудра
4
Это не идеальное решение, так как не позволит Google проиндексировать приложение. Игнорируя что-то, вы должны попытаться преодолеть эту проблему.
Пратик Бутани
@PratikButaniAndroidDev Индексация в AppStore не является приоритетной задачей для многих разработчиков, поскольку она начинает разработку приложений.
Махер Абутраа,
25

Добавление фильтра намерений к одному из действий, объявленных в манифесте приложения, исправило это для меня.

<activity
    android:name=".MyActivity"
    android:screenOrientation="portrait"
    android:label="@string/app_name">

    <intent-filter>

       <action android:name="android.intent.action.VIEW" />

    </intent-filter>

</activity>
Оладипо Оласемо
источник
У меня есть это, но с intent.action.MAIN, и это не прошло.
С. Скьердал
Вам нужно убедиться, что для него установлено значение android.intent.action.VIEW
Оладипо Оласемо,
1

это решение работает только. если вы хотите игнорировать это предупреждение

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="GoogleAppIndexingWarning"
    package="com.example.saloononlinesolution">
Бентен
источник