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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android - 在更新SDK版本23后,使用ACTION-VIEW intent-filter添加至少一个Activity相关的知识,希望对你有一定的参考价值。

我在androidManifest.xml中获得以下工具提示:

Google搜索无法将应用程序编入索引;考虑使用ACTION-VIEW意图填充添加至少一个活动。有关详细信息,请参阅问题说明

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

enter image description here

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

答案

从官方文件:

要使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
另一答案

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

<action android:name="android.intent.action.VIEW" />
另一答案
<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>标记来删除警告。

另一答案

将此intent过滤器添加到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>

以上是关于Android - 在更新SDK版本23后,使用ACTION-VIEW intent-filter添加至少一个Activity的主要内容,如果未能解决你的问题,请参考以下文章

更新到 sdk 版本 23 后,我的应用程序因一些浮动操作按钮错误而崩溃?

解决在sdk manager中更新文件后出现This Android SDK requires Android Developer Toolkit version 23.1的错误

此 Android SDK 需要 ADT 版本 23.0.0 或更高版本。当前版本是 22.6。请更新 ADT 到最新版本? [复制]

[转]关于sdk更新Android SDK Tools 25.3.1版本后使用sdk manager闪退

在 Android 中将 SDK 版本更新为 24.3 后,所有库都显示错误

Android 应用程序在 SDK-tools 更新版本后崩溃(NoClassDefFound,工具版本 22)