Обработчик по умолчанию для глубинных ссылок Android

Я пытаюсь использовать последнюю функцию обработки по умолчанию для сайта и приложения с глубокими ссылками, представленную в выпуске Marshmallow. Я сделал три шага, как описано здесь (https://developer.android.com/training/app-links/index.html)

  1. Я создал обработчики намерений в своем apk

            <data android:scheme="http"
                android:path="/cat.html"
                android:host="kino.tryremember.ru"/>
        </intent-filter>
    </activity>
    <activity
        android:name=".DogActivity"
        android:exported="true"
        android:launchMode="singleTop">
        <intent-filter
            android:label="@string/app_name"
            android:autoVerify="true"
            tools:ignore="UnusedAttribute">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
    
            <data android:scheme="http"
                android:path="/dog.html"
                android:host="kino.tryremember.ru"/>
        </intent-filter>
    </activity>
    
  2. Я добавил json-файл assetslink на свой тестовый сайт (https://kino.tryremember.ru/.well-known/assetlinks.json)

Как я заметил, мое приложение обрабатывает ссылки на веб-сайты, и когда я нажимаю ссылку на результат поиска в поиске Google в Chrome, например, он дает мне диалоговое окно выбора, но, как описано в документах (ссылка выше), на самом деле будет автоматическое определение обработчика по умолчанию мое приложение будет обработчиком по умолчанию, потому что я выполнил все условия.

Но при установке я мог видеть в logcat что-то подобное

08-10 17:39:24.821  4755 19896 I SingleHostAsyncVerifier:Verification result: checking for a statement with source a <
08-10 17:39:24.821  4755 19896 I SingleHostAsyncVerifier:   a: "https://kino.tryremember.ru"
08-10 17:39:24.821  4755 19896 I SingleHostAsyncVerifier: >
08-10 17:39:24.821  4755 19896 I SingleHostAsyncVerifier: , relation delegate_permission/common.handle_all_urls, and target b <
08-10 17:39:24.821  4755 19896 I SingleHostAsyncVerifier:   a: "com.busylee.appindexingexample"
08-10 17:39:24.821  4755 19896 I SingleHostAsyncVerifier:   b <
08-10 17:39:24.821  4755 19896 I SingleHostAsyncVerifier:     a: "A7:93:BA:D8:DD:ED:F4:40:08:7B:C7:43:49:60:C3:4F:31:34:54:2F:58:AC:BE:D9:16:CB:C5:B9:2B:A3:B9:CA"
08-10 17:39:24.821  4755 19896 I SingleHostAsyncVerifier:   >
08-10 17:39:24.821  4755 19896 I SingleHostAsyncVerifier: >
08-10 17:39:24.821  4755 19896 I SingleHostAsyncVerifier:  --> false.
08-10 17:39:24.821  4755 19896 D SingleHostAsyncVerifier: Remaining verification failures before we've exhausted all certs: 0
08-10 17:39:24.821  4755 19896 D StatementServiceResFut: setResult on host: a <
08-10 17:39:24.821  4755 19896 D StatementServiceResFut:   a: "https://kino.tryremember.ru"
08-10 17:39:24.821  4755 19896 D StatementServiceResFut: >
08-10 17:39:24.821  4755 19896 D StatementServiceResFut: : false
08-10 17:39:24.821  4755 19895 I IntentFilterIntentSvc: Verification 3 complete. Success:false. Failed hosts:kino.tryremember.ru.

Я не могу понять, что случилось. Есть ли у кого-нибудь идеи о том, что я пропустил или делаю неправильно?


person busylee    schedule 10.08.2016    source источник
comment
Проверьте applicationId вашего приложения, а также отпечаток sha256 хранилища ключей, которое вы используете.   -  person Simon Marquis    schedule 10.08.2016


Ответы (1)


Я нашел свою неудачу. Строго добавить заголовок Content-Type application-json для файла .well-known/assetlinks.json, иначе вы столкнетесь с той же ошибкой, что и я.

person busylee    schedule 10.08.2016