Android - 在更新SDK版本23后,使用ACTION-VIEW intent-filter添加至少一个Activity

时间:2015-12-19 06:09:15

标签: android android-intent android-manifest

我在 AndroidManifest.xml

中收到以下工具提示
  

Google搜索无法将应用程序编入索引;考虑至少添加一个   具有ACTION-VIEW意图填充的活动。请参阅问题说明   更多细节。

     

添加深层链接以将您的应用添加到Google索引中   从Google搜索获取应用的安装和流量。

enter image description here

任何人都可以解释为什么会这样吗?

5 个答案:

答案 0 :(得分:153)

来自官方文件:

  

要让Google抓取您的应用内容并允许用户从搜索结果中输入您的应用,您必须为应用清单中的相关活动添加意图过滤器。这些意图过滤器允许深入链接到您的任何活动中的内容。例如,用户可以点击深层链接以查看购物应用中的页面,该页面描述用户正在搜索的产品。

使用此链接Enabling Deep Links for App Content,您将了解如何使用它。

使用此Test Your App Indexing Implementation如何测试它。

  

以下XML代码段显示了如何指定intent过滤器   在您的清单中进行深层链接。

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

答案 1 :(得分:104)

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

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

答案 2 :(得分:81)

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

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

答案 3 :(得分:7)

将此意图过滤器添加到app清单中声明的​​活动之一后,为我解决了这一问题。

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

    <intent-filter>

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

    </intent-filter>

</activity>

答案 4 :(得分:1)

仅当您想忽略此警告时,此解决方案才有效

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