Android: aggiunta di almeno un'attività con un filtro intenti ACTION-VIEW dopo l'aggiornamento dell'SDK versione 23


305

Ricevo il seguente suggerimento in AndroidManifest.xml :

L'app non è indicizzabile da Ricerca Google; considerare l'aggiunta di almeno un'attività con un intent-filler ACTION-VIEW. Vedi la spiegazione del problema per maggiori dettagli.

Aggiunge collegamenti diretti per inserire la tua app nell'indice di Google, per ottenere installazioni e traffico sulla tua app dalla Ricerca Google.

inserisci qui la descrizione dell'immagine

Qualcuno può spiegare perché è così?


Per vederlo in azione, vedere qui: stackoverflow.com/questions/56631387/...
user1506104

Risposte:


239

Dalla documentazione ufficiale:

Per consentire a Google di eseguire la scansione dei contenuti dell'app e consentire agli utenti di inserire l'app dai risultati di ricerca, è necessario aggiungere filtri di intenti per le attività pertinenti nel manifest dell'app. Questi filtri di intenti consentono un collegamento profondo al contenuto in una qualsiasi delle tue attività. Ad esempio, l'utente può fare clic su un collegamento diretto per visualizzare una pagina all'interno di un'app per lo shopping che descrive un'offerta di prodotto che l'utente sta cercando.

Usando questo link Abilitando Deep Link per il contenuto dell'app vedrai come usarlo.

E utilizzando questo test dell'implementazione dell'indicizzazione dell'app come testarlo.

Il seguente frammento XML mostra come è possibile specificare un filtro di intenti nel manifest per il collegamento diretto.

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

Per testare tramite 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

5
Lo schema @ user25 è lo schema uri, lo schema può essere http, https, ftp ecc.
Bhargav

89
bene tutto questo per app specifiche, quindi perché mostrare quell'avvertimento? non tutte le app ne hanno bisogno, non tutte le app sono viste web di alcuni siti. Google è così fastidioso ..
user924

64
Può essere eliminato comunque con gli strumenti: ignore = "GoogleAppIndexingWarning"
ecle

12
Curioso che l'avvertimento affermi che è necessario un ACTION-VIEWfiltro intento, ma la soluzione comporta action.VIEW. Allo stesso modo, seguendo il collegamento in Android Studio si accede a una pagina Web in cui ACTION-VIEWnon viene visualizzato. Il minimo che potrebbero fare con avvisi invadenti è darti messaggi precisi e pagine di aiuto.
John Perry,

7
@ecle Dove si mette questa opzione? / Non importa; L'ho trovato: bisogna aggiungere xmlns:tools="http://schemas.android.com/tools"al manifesttag, quindi aggiungere tools:ignore...al applicationtag.
John Perry,

190

Puoi rimuovere l'avviso aggiungendo il codice qui sotto <intent-filter>all'interno<activity>

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

6
Questo lavoro è per me. Penso che questa sia la risposta che sto cercando.
Mahmudur Rahman,

13
Questa sembra essere la soluzione corretta se non si desidera abilitare l'indicizzazione delle app. Invece di rimuovere semplicemente l'avviso tramite tools:ignore="GoogleAppIndexingWarning". L'ho aggiunto come fratello <action android:name="android.intent.action.MAIN" />all'attività principale.
Daniel F,

4
ma perché abbiamo bisogno di questa riga nel codice alla cieca? qualche motivo specifico?
Ghanshyam Nayma,

15
@GhanshyamNayma l'aggiunta di questa riga rimuove solo l'avviso. Senza il codice aggiuntivo necessario per aggiungere l'indicizzazione effettiva delle app. Non esattamente le migliori pratiche, ma capisco che gli avvisi sono fastidiosi. Vorrei solo andare tools:ignore="GoogleAppIndexingWarning"invece perché non aggiungerai un ACTION_VIEW vuoto. Potrebbe non causare problemi, ma vuoi sempre essere al sicuro.
Carson J.

8
ah quindi QUESTO è il motivo per cui così tante app casuali vengono visualizzate per ACTION_VIEW ora ... 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">

È possibile rimuovere l'avviso aggiungendo xmlns:tools="http://schemas.android.com/tools"e tools:ignore="GoogleAppIndexingWarning"al <manifest>tag.


3
Questo funziona per me ed è esattamente la soluzione che stavo cercando.
Sayan Sil,

Questa è la soluzione perfetta.
Rudra,

4
Non è la soluzione perfetta in quanto non consentirà a Google di indicizzare l'app. Ignorando qualcosa dovresti provare a superare quel problema.
Pratik Butani,

@PratikButaniAndroidDev L'indicizzazione in AppStore non è una priorità per molti sviluppatori, soprattutto perché iniziano a sviluppare app ..
Maher Abuthraa,

25

L'aggiunta di questo filtro di intenti a una delle attività dichiarate in manifest manifest mi ha risolto questo problema.

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

    <intent-filter>

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

    </intent-filter>

</activity>

Ho questo ma con intent.action.MAIN e non è andato via.
C. Skjerdal,

Devi assicurarti che sia impostato su android.intent.action.VIEW
Oladipo Olasemo il

1

questa soluzione funziona solo se si desidera ignorare questo avviso

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="GoogleAppIndexingWarning"
    package="com.example.saloononlinesolution">
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.