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?


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

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

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.


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>

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">
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.