什么是新生成的代码“这是自动生成的,以实现AppIndexingAPI。”

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (24)

今天刚刚创建了一个新的POC,我注意到在主要活动的“onCreate”方法中正在编写一个新的行:

    // ATTENTION: This was auto-generated to implement the App Indexing API.
    // See https://g.co/AppIndexing/AndroidStudio for more information.
    mClient = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();

还有更多:

@Override
    public void onStart() {
        super.onStart();

        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See https://g.co/AppIndexing/AndroidStudio for more information.
        mClient.connect();
        Action viewAction = Action.newAction(
                Action.TYPE_VIEW, // TODO: choose an action type.
                "SinglePhotoViewer Page", // TODO: Define a title for the content shown.
                // TODO: If you have web page content that matches this app activity's content,
                // make sure this auto-generated web page URL is correct.
                // Otherwise, set the URL to null.
                Uri.parse("http://host/path"),
                // TODO: Make sure this auto-generated app deep link URI is correct.
                Uri.parse("android-app://com.example.user.transitionstest/http/host/path")
        );
        AppIndex.AppIndexApi.start(mClient, viewAction);
    }

    @Override
    public void onStop() {
        super.onStop();

        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See https://g.co/AppIndexing/AndroidStudio for more information.
        Action viewAction = Action.newAction(
                Action.TYPE_VIEW, // TODO: choose an action type.
                "SinglePhotoViewer Page", // TODO: Define a title for the content shown.
                // TODO: If you have web page content that matches this app activity's content,
                // make sure this auto-generated web page URL is correct.
                // Otherwise, set the URL to null.
                Uri.parse("http://host/path"),
                // TODO: Make sure this auto-generated app deep link URI is correct.
                Uri.parse("android-app://com.example.user.transitionstest/http/host/path")
        );
        AppIndex.AppIndexApi.end(mClient, viewAction);
        mClient.disconnect();
    }

这是在舱单上添加的:

<!-- ATTENTION: This was auto-generated to add Google Play services to your project for
        App Indexing.  See https://g.co/AppIndexing/AndroidStudio for more information. -->
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version"/>

奇怪的是,我创建的任何其他新项目都不会显示这一行新代码

提问于
用户回答回答于

你是正确的:该代码是由AndroidStudio自动为您创建的,以帮助AppIndexingAPI的实现。

然而,它并不是通过简单地向应用程序添加一个新的活动来创建的。需要显式地要求AndroidStudio创建这段代码。然后,将需要更新它与活动的细节:类型的行动,标题,深度链接,相应的网页。

要为生成此代码,可以使用弹出意图列表。通过ALT+Enter选择“插入应用程序索引API代码“:

或者你可以用弹出代码生成列表通过ALT+插入,选择“APP索引API代码“:

实际上,只有四部分需要调整:

// What type of action is this? (TYPE_VIEW, TYPE_LISTEN, TYPE_WATCH, etc...)    
Action.TYPE_VIEW

// Title of your page, just like the web
"SinglePhotoViewer Page"

// The web url of corresponding content, if exists, otherwise leave blank, ""
Uri.parse("http://host/path") 

// Your deep link starting with "android-app://"
Uri.parse("android-app://com.example.user.transitionstest/http/host/path")

作为一种最佳实践,应该选择一个标题,该标题最准确地描述应用程序中深链接位置的内容。就像你在<TITLE></TITLE>HTML网页标题中的标记。

一旦实现,最终用户查看的任何活动都将报告到Android操作系统的深度链接。然后,当用户在GoogleQuickSearchBox中键入查询时,它将在“建议自动完成结果”中可用。应用程序图标和您提供的标题将显示在建议结果,如果用户查询匹配您的标题通过关键字。

下面是一个例子,从最终用户的角度来看,假设之前访问了左侧的“建议结果”中显示的两个页面,那么LiveNation应用程序中会出现这样的情况:

此外,通过实现AppIndexdexAPI,将在搜索结果中获得排名的提升,如在最初问题中提供的链接中所指出的:

这使的应用程序用户能够自动完成查询,并且可以获得更丰富的搜索结果,提高搜索质量,以及增强的排名信号

用户回答回答于

可以通过以下步骤禁用该选项:

Settings > Intentions > Android > Insert App Indexing API code

然后取消检查。

扫码关注云+社区