Действия в Google - Невозможно проверить намерение действия приложения в Android
Я пытаюсь открыть свою глубокую ссылку, отвечая на намерение действия приложения. мой 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, и приложение уже опубликовано.
Вот скриншот средства тестирования действия приложения с конфигурацией.
Когда я нажимаю "Выполнить", помощник открывается, загружает и отображает тост с надписью "Приложение не установлено".
Что мне не хватает?
2 ответа
На первый взгляд все выглядит правильно настроенным. Хотя я вижу ошибку Lint для вашего android:host
- "Сопоставление хоста чувствительно к регистру и должно использовать только символы нижнего регистра", поэтому вам, вероятно, следует переключить его на строчные буквы. Я не уверен, что это проблема, хотя.
"Приложение не установлено" означает, что Помощник не может найти приложение, которое может удовлетворить Намерение, созданное из actions.xml. Две вещи, которые я бы проверил:
- Попробуйте запустить свою активность из командной строки через
adb
чтобы обеспечить вашintent-filters
установлены правильно, например:
adb shell am start -a android.intent.action.VIEW \
-c android.intent.category.BROWSABLE \
-d "myapp://logMeasure?measureName=test"
- Если это работает нормально, то дважды проверьте, что имя пакета приложения, которое обрабатывает это намерение (установленное на вашем тестовом устройстве), совпадает с именем
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
Я думаю, что я действительно не понимаю. В прошлый раз работает, толкнул мою ветку. Просто оформите заказ сейчас, скомпилируйте, и это не сработает. У нас есть какие-либо варианты активировать некоторые журналы от помощника, чтобы понять, что не так?