Android - Adicionando pelo menos uma atividade com um filtro de intenção do ACTION-VIEW após a atualização do SDK versão 23

305

Estou recebendo a seguinte dica de ferramenta no AndroidManifest.xml :

O aplicativo não é indexável pela Pesquisa do Google. considere adicionar pelo menos uma atividade com um preenchedor de intenção do ACTION-VIEW. Consulte a explicação do problema para obter mais detalhes.

Adiciona links diretos para inserir seu aplicativo no índice do Google, obter instalações e tráfego para ele a partir da Pesquisa Google.

insira a descrição da imagem aqui

Alguém pode explicar por que é assim?

Pratik Butani
fonte
Para vê-lo em ação, consulte aqui: stackoverflow.com/questions/56631387/…
user1506104 20/06/19

Respostas:

239

Da documentação oficial:

Para permitir que o Google rastreie o conteúdo do seu aplicativo e permita que os usuários insiram o aplicativo nos resultados da pesquisa, você deve adicionar filtros de intenção para as atividades relevantes no manifesto do aplicativo. Esses filtros de intenção permitem links diretos para o conteúdo em qualquer uma de suas atividades. Por exemplo, o usuário pode clicar em um link direto para visualizar uma página em um aplicativo de compras que descreve uma oferta de produto que o usuário está procurando.

Usando este link Habilitando links diretos para o conteúdo do aplicativo, você verá como usá-lo.

E usando esta Implementação de Indexação de Teste do Seu Aplicativo, como testá-la.

O seguinte snippet XML mostra como você pode especificar um filtro de intenção em seu manifesto para links diretos.

<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 testar via 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.
fonte
5
O esquema @ user25 é o esquema de uri, o esquema pode ser http, https, ftp etc.
2200 Bhargav
89
bem, tudo isso para aplicativos específicos, por que mostrar esse aviso? nem todos os aplicativos precisam disso, nem todos os aplicativos têm a visualização da web de alguns sites. Google é tão chato ..
user924
64
Ele pode ser suprimido de qualquer maneira com as ferramentas: ignore = "GoogleAppIndexingWarning"
ecle 27/08/18
12
Curioso que o aviso diga que você precisa de um ACTION-VIEWfiltro de intenção, mas a solução envolve action.VIEW. Da mesma forma, seguir o link no Android Studio leva você a uma página da Web em ACTION-VIEWque não aparece. O mínimo que eles poderiam fazer com avisos indiscretos é fornecer mensagens precisas e páginas de ajuda.
John Perry
7
@ecle Onde alguém coloca essa opção? / Deixa pra lá; Eu encontrei: é preciso adicionar xmlns:tools="http://schemas.android.com/tools"à manifesttag e, em seguida, adicionar tools:ignore...à applicationtag.
John Perry
190

Você pode remover o aviso adicionando o código abaixo <intent-filter>dentro<activity>

<action android:name="android.intent.action.VIEW" />
Bibin Johny
fonte
6
Este trabalho é para mim. Eu acho que essa é a resposta que estou procurando.
Mahmudur Rahman
13
Essa parece ser a solução correta se você não deseja ativar a indexação de aplicativos. Em vez de apenas remover o aviso via tools:ignore="GoogleAppIndexingWarning". Eu adicionei como um irmão <action android:name="android.intent.action.MAIN" />na atividade principal.
Daniel F
4
mas por que precisamos dessa linha no código cegamente? alguma razão específica?
Ghanshyam Nayma
15
@GhanshyamNayma adicionando esta linha apenas remove o aviso. Sem o código extra necessário para adicionar a indexação real do aplicativo. Não é exatamente a melhor prática, mas entendo que os avisos são irritantes. Gostaria apenas de continuar, tools:ignore="GoogleAppIndexingWarning"porque você não adicionará um ACTION_VIEW vazio. Pode não causar problemas, mas você sempre quer estar seguro.
Carson J.
8
ah Então é por isso tantos aplicativos aleatórios estão aparecendo para ACTION_VIEW agora ... 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">

Você pode remover o aviso adicionando xmlns:tools="http://schemas.android.com/tools"e tools:ignore="GoogleAppIndexingWarning"à <manifest>tag.

Pat Lee
fonte
3
Isso funciona para mim e exatamente a solução que eu estava procurando.
Sayan Sil
Esta é a solução perfeita.
Rudra
4
Não é uma solução perfeita, pois não permitirá que o Google indexe aplicativos. Ao ignorar algo, você deve tentar superar esse problema.
Pratik Butani 12/06/19
@PratikButaniAndroidDev indexação na AppStore não é prioridade para muitos desenvolvedores principalmente como iniciar aplicativo desenvolvimento ..
Maher Abuthraa
25

A adição desse filtro de intenção a uma das atividades declaradas no manifesto do aplicativo corrigiu isso para mim.

<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
fonte
Eu tenho isso, mas com intent.action.MAIN e não foi embora.
C. Skjerdal
Você precisa se certificar de que está definido para android.intent.action.VIEW
Oladipo Olasemo
1

esta solução funciona apenas .se você deseja ignorar este aviso

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