Встроенное намерение "actions.intent.GET_ACCOUNT" в действиях приложения, не вызываемых запросом пользователя "Проверить баланс в mybank" - PullRequest
0 голосов
/ 08 мая 2020

Проверено на android версии 7.2. Работает нормально, когда пользователь запрашивает «Проверить сохранение баланса в mybank» или «Проверить текущий баланс в mybank», где mybank - это имя приложения, созданное в инструменте тестирования действий приложения. Вызывается намерение

, а onBindSlice получает параметр « сохранение »и« текущий »в качестве параметра, но не работает для« Проверить баланс в mybank » параметры не фиксируются. как сделать так, чтобы пользовательские запросы работали?

вот мой файл действий Google

<?xml version ="1.0" encoding ="utf-8"?><!--  Learn More about how to use App Actions: https://developer.android.com/guide/actions/index.html -->
<actions>
    <!--    Example Action -->
    <!--    <action intentName="Intent name (actions.intent.*)"> -->
    <!--        <action-display -->
    <!--            icon="@mipmap/..." -->
    <!--            labelTemplate="@array/..." /> -->
    <!--        <fulfillment urlTemplate="Action content URI or URL"> -->
    <!--            <parameter-mapping -->
    <!--                intentParameter="Parameter name in Intent URI" -->
    <!--                urlParameter="Parameter name in URL" /> -->
    <!--        </fulfillment> -->
    <!--    </action> -->


    <action intentName="actions.intent.GET_ACCOUNT">
        <parameter name="account.name">
            <entity-set-reference entitySetId="AccountEntitySet"/>


        </parameter>
        <entity-set entitySetId="AccountEntitySet" >

            <entity
                name="balance"

                identifier="1" />
            <entity
                name="wallet"

                identifier="2" />
            />
        </entity-set>
        <fulfillment
            fulfillmentMode="actions.fulfillment.SLICE"
            urlTemplate="content://spice.mudra.google_actions{?accountType}">
            <parameter-mapping
                urlParameter="accountType"
                intentParameter="account.name"

                required="true"/>
        </fulfillment>

        <fulfillment
            fulfillmentMode="actions.fulfillment.DEEPLINK"
            urlTemplate="https://fit-actions.firebaseapp.com/stats" />
    </action>
</actions>

Код в манифесте.

<provider
            android:name=".google_actions.MySliceProvider"
            android:authorities="spice.mudra.google_actions"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.app.slice.category.SLICE" />


            </intent-filter>
        </provider>

        <meta-data
            android:name="com.google.android.actions"
            android:resource="@xml/actions" />

<activity
            android:name=".activity.SplashActivity"
            android:label="@string/app_name"
            android:exported="true"
            android:screenOrientation="portrait"
            android:theme="@style/MyMaterialTheme.Base.blue">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <!-- Required to support search action intents from Google Search -->
            <intent-filter>
                <action android:name="com.google.android.gms.actions.SEARCH_ACTION" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>

            <!-- Define your supported deeplinks -->
            <intent-filter
                android:autoVerify="true"
                tools:targetApi="m">
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data
                    android:host="fit-actions.firebaseapp.com"
                    android:scheme="https" />
            </intent-filter>
        </activity>

1 Ответ

0 голосов
/ 29 июля 2020

Я только что снова протестировал и, похоже, работает со встроенным инвентарем (настраиваемые объекты). Пожалуйста, попробуйте еще раз и дайте мне знать, как это происходит.

...