Действия в Google - Невозможно проверить намерение действия приложения в Android - PullRequest
2 голосов
/ 15 мая 2019

Я пытаюсь открыть свою глубокую ссылку, отвечая на намерение действия приложения. Мой actions.xml

<?xml version="1.0" encoding="utf-8"?>
<actions>
    <action intentName="actions.intent.RECORD_HEALTH_OBSERVATION" >
        <fulfillment urlTemplate="myapp://logMeasure{?measureName}">
            <parameter-mapping
                intentParameter="healthObservation.measuredProperty.name"
                urlParameter="measureName" />
        </fulfillment>
    </action>
</actions>

В манифесте я объявил MainActivity как exported с Deeplink и мета для действий.

<activity
    android:name="com.myapp.MainActivity"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
        <data
            android:host="logMeasure"
            android:scheme="myapp"/>
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

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

Я правильно вошел в систему с той же учетной записью Google на Android Studio и мой телефон. Моя учетная запись может получить доступ к консоли разработчика Google Play, и приложение уже опубликовано.

Вот скриншот средства тестирования действия приложения с конфигурацией. App action test tool

Когда я нажимаю «Выполнить», помощник открывается, загружает и затем отображает значок с надписью «Приложение не установлено». Assistant can't open my deeplink

Чего мне не хватает?

Ответы [ 2 ]

3 голосов
/ 16 мая 2019

На первый взгляд все выглядит правильно настроенным. Хотя я вижу ошибку lint для вашего android:host - «Совпадение хостов чувствительно к регистру и должно использовать только символы нижнего регистра», поэтому вам, вероятно, следует переключить его на строчные буквы. Я не уверен, что в этом проблема.

«Приложение не установлено» означает, что Помощник не может найти приложение, которое может удовлетворить Намерение, созданное из actions.xml. Две вещи, которые я бы проверил:

  1. Попробуйте запустить свою активность из командной строки через adb, чтобы убедиться, что intent-filters настроены правильно, например:
    adb shell am start -a android.intent.action.VIEW \
            -c android.intent.category.BROWSABLE \
            -d "myapp://logMeasure?measureName=test"
  1. Если это работает нормально, то дважды проверьте, совпадает ли имя пакета приложения, которое обрабатывает это намерение (установленное на вашем тестовом устройстве), с файлом actions.xml в Android Studio. Когда помощник вызывает ваше намерение, он также указывает имя пакета, чтобы другое приложение не перехватывало и обрабатывало намерение. Вы также можете проверить это через adb, добавив имя пакета в конец:
    adb shell am start -a android.intent.action.VIEW \
            -c android.intent.category.BROWSABLE \
            -d "myapp://logMeasure?measureName=test" \
            com.yourpackage.from.studio.project
0 голосов
/ 18 мая 2019

Я думаю, что я действительно не понимаю. В прошлый раз работает, толкнул мою ветку. Просто зацените сейчас, скомпилируйте, и это не сработает. У нас есть какие-либо варианты активировать некоторые журналы от помощника, чтобы понять, что не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...