我在AndroidManifest.xml中得到以下工具提示:

应用程序是不可索引的谷歌搜索;考虑至少增加一个 带有ACTION-VIEW意图填充符的活动。参见有关问题的解释 更多的细节。 添加深度链接,让你的应用程序进入谷歌索引, 通过谷歌搜索获取应用的安装量和流量。

有人能解释一下为什么会这样吗?


当前回答

来自官方文件:

为了让谷歌抓取你的应用内容,并允许用户从搜索结果中进入你的应用,你必须在你的应用清单中添加相关活动的意图过滤器。这些意图过滤器允许深度链接到任何活动中的内容。例如,用户可能会点击一个深度链接来查看购物应用程序中描述用户正在搜索的产品的页面。

使用此链接为应用程序内容启用深度链接,您将看到如何使用它。

并使用这个测试你的应用程序索引实现如何测试它。

下面的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调试桥进行测试

$ 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

其他回答

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

您可以通过向<manifest>标记添加xmlns:tools="http://schemas.android.com/tools"和tools:ignore="GoogleAppIndexingWarning"来删除警告。

您可以通过在<intent-filter>内<activity>中添加以下代码来删除警告

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

来自官方文件:

为了让谷歌抓取你的应用内容,并允许用户从搜索结果中进入你的应用,你必须在你的应用清单中添加相关活动的意图过滤器。这些意图过滤器允许深度链接到任何活动中的内容。例如,用户可能会点击一个深度链接来查看购物应用程序中描述用户正在搜索的产品的页面。

使用此链接为应用程序内容启用深度链接,您将看到如何使用它。

并使用这个测试你的应用程序索引实现如何测试它。

下面的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调试桥进行测试

$ 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

将这个意图过滤器添加到app manifest中声明的一个活动中,为我解决了这个问题。

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

    <intent-filter>

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

    </intent-filter>

</activity>

如果您想忽略此警告,此解决方案只工作

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