Android: agregar al menos una actividad con un filtro de intención ACTION-VIEW después de actualizar SDK versión 23

305

Recibo la siguiente información sobre herramientas en AndroidManifest.xml :

La aplicación no es indexable por la Búsqueda de Google; considere agregar al menos una Actividad con un relleno de intención ACTION-VIEW. Vea la explicación del problema para más detalles.

Agrega enlaces profundos para obtener su aplicación en el índice de Google, para obtener instalaciones y tráfico a su aplicación desde la Búsqueda de Google.

ingrese la descripción de la imagen aquí

¿Alguien puede explicar por qué es así?

Pratik Butani
fuente
Para verlo en acción, consulte aquí: stackoverflow.com/questions/56631387/…
user1506104

Respuestas:

239

De la documentación oficial:

Para permitir que Google rastree el contenido de su aplicación y permita que los usuarios ingresen a su aplicación desde los resultados de búsqueda, debe agregar filtros de intención para las actividades relevantes en el manifiesto de su aplicación. Estos filtros de intención permiten enlaces profundos al contenido en cualquiera de sus actividades. Por ejemplo, el usuario puede hacer clic en un enlace profundo para ver una página dentro de una aplicación de compras que describe una oferta de producto que el usuario está buscando.

Usando este enlace Habilitando enlaces profundos para el contenido de la aplicación , verá cómo usarlo.

Y usando esta Implementación de indexación de Probar su aplicación, cómo probarla.

El siguiente fragmento de XML muestra cómo puede especificar un filtro de intención en su manifiesto para enlaces profundos.

<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>

Para probar a través de 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.
fuente
55
@ user25 es el esquema uri, el esquema puede ser http, https, ftp, etc.
Bhargav
89
bueno, todo esto para aplicaciones específicas, entonces ¿por qué mostrar esa advertencia? no todas las aplicaciones necesitan esto, no todas las aplicaciones son webview de algunos sitios. Google es tan molesto ..
user924
64
Se puede suprimir de todos modos con las herramientas: ignore = "GoogleAppIndexingWarning"
ecle
12
Curioso que la advertencia dice que necesita un ACTION-VIEWfiltro de intención, sin embargo, la solución implica action.VIEW. Del mismo modo, seguir el enlace en Android Studio lo lleva a una página web donde ACTION-VIEWno aparece. Lo menos que podrían hacer con advertencias molestas es darle mensajes precisos y páginas de ayuda.
John Perry
77
@ecle ¿Dónde se pone esta opción? / No importa; Lo encontré: hay que agregar xmlns:tools="http://schemas.android.com/tools"a la manifestetiqueta, luego agregar tools:ignore...a la applicationetiqueta.
John Perry
190

Puede eliminar la advertencia agregando el siguiente código en el <intent-filter>interior<activity>

<action android:name="android.intent.action.VIEW" />
Bibin Johny
fuente
66
Este trabajo es para mi. Creo que esta es la respuesta que estoy buscando.
Mahmudur Rahman
13
Esta parece ser la solución correcta si no desea habilitar la indexación de aplicaciones. En lugar de simplemente eliminar la advertencia a través de tools:ignore="GoogleAppIndexingWarning". Lo agregué como hermano <action android:name="android.intent.action.MAIN" />en la actividad principal.
Daniel F
44
pero ¿por qué necesitamos esta línea en el código a ciegas? alguna razon especifica?
Ghanshyam Nayma
15
@GhanshyamNayma agregando esta línea simplemente elimina la advertencia. Sin el código adicional necesario para agregar la indexación de la aplicación real. No es exactamente la mejor práctica, pero entiendo que las advertencias son molestas. En su lugar, preferiría tools:ignore="GoogleAppIndexingWarning"porque no agregarás un ACTION_VIEW vacío. Es posible que no cause ningún problema, pero siempre desea estar seguro.
Carson J.
8
ah, ESTO es el motivo por el que se muestran tantas aplicaciones aleatorias para ACTION_VIEW ahora ... 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">

Puede eliminar la advertencia agregando xmlns:tools="http://schemas.android.com/tools"y tools:ignore="GoogleAppIndexingWarning"a la <manifest>etiqueta.

Pat Lee
fuente
3
Esto funciona para mí y es exactamente la solución que estaba buscando.
Sayan Sil
Esta es la solución perfecta.
Rudra
44
No es la solución perfecta, ya que no permitirá que Google indexe la aplicación. Al ignorar algo, debes tratar de superar ese problema.
Pratik Butani
@PratikButaniAndroidDev La indexación en AppStore no es prioritaria para muchos desarrolladores, principalmente cuando comienzan a desarrollar aplicaciones ..
Maher Abuthraa
25

Agregar este filtro de intención a una de las actividades declaradas en el manifiesto de la aplicación me solucionó esto.

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

    <intent-filter>

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

    </intent-filter>

</activity>
Oladipo Olasemo
fuente
Tengo esto pero con intent.action.MAIN y no desapareció.
C. Skjerdal
Debe
1

esta solución solo funciona si desea ignorar esta Advertencia

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="GoogleAppIndexingWarning"
    package="com.example.saloononlinesolution">
Ben diez
fuente