Ссылка на приложение Android по умолчанию отключена при развертывании приложения (но в противном случае работает)Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Ссылка на приложение Android по умолчанию отключена при развертывании приложения (но в противном случае работает)

Сообщение Anonymous »

Я переношу поток авторизации Android .NET MAUI с того, который обрабатывает перенаправление с использованием устаревшей пользовательской схемы URL-адресов, на тот, который использует ссылку на приложение Android, проверенную с помощью файла ссылок на цифровые активы, размещенного в Firebase. Ссылка на приложение Android настроена правильно и отлично работает после включения на устройстве Android.
Проблема в том, что когда приложение установлено (либо через внутренний тестовый трек Google Play, либо загружено неопубликовано), Ссылка на приложение Android отключена по умолчанию. Пользователям необходимо вручную:
  • перейти в «Настройки (телефона)» > «Приложения» > «Установить по умолчанию» > «Поддерживаемые веб-адреса»,
  • Переключите переключатель для уже существующей ссылки (например, myfirebasedomain.com).
Изображение


Мой вопрос: как я могу гарантировать, что ссылка на приложение Android включено по умолчанию при установке приложения из Google Play? Существует ли конфигурация или известный обходной путь, позволяющий избежать необходимости включать ссылку вручную?

ОБНОВИТЬ Что я пробовал:
Я перешел по ссылке, указанной в комментариях, и пролистал ее тщательной расческой. Вот вещи, которые я не только пробовал, но и просматривал снова и снова в поисках всего, что мог упустить из виду.
Но есть ли здесь «что-то еще», пролетающее вне поля зрения? Например, вполне вероятно, что Google Play может приостановить проверку до тех пор, пока приложение не будет полностью проверено, и, поскольку оно находится на стадии разработки (помните, я помещаю это в песочницу в MRE POC), оно определенно еще не было отправлено на проверку.
  • Скомпилировано в режиме выпуска:
    < ul>
    Встроен APK в Режим выпуска, чтобы убедиться, что он подписан с правильным хранилищем ключей и подходит для проверки домена.
  • Подтвержденная подпись APK:
    • Использована команда keytool -printcert -jarfile для извлечения SHA- 256 отпечатка сертификата подписи APK.
    • Подтверждено, что извлеченный отпечаток SHA-256 соответствует отпечатку, указанному в файле assetslinks.json.
  • Проверил файл assetslinks.json Доступность:
    • Проверил, что файл assetslinks.json< /code> файл размещен по адресу https://echoessyncproxy.com/.well-known/assetlinks.json.
    • Подтверждение доступности путем ввода URL-адреса непосредственно в браузере.
  • Протестированная проверка домена:
    • < li>Запустите оболочку adb pm get-app-links com.ivsoftware.echoessyncproxy.maui для проверки состояния проверки домена.
    • Обнаружено, что статус домена равен 1024, что указывает на сбой проверки.
  • Проверенное поведение ссылок на приложения:
    • Проверил ссылку на приложение с помощью оболочки adb am. start -a android.intent.action.VIEW -d "https://echoessyncproxy.com/auth".
    • Подтверждено, что вызывается WebAuthenticatorCallbackActivity, указывает, что IntentFilter работает должным образом.
Intent Filter
Вот действие обратного вызова веб-аутентификатора (который, опять же, работает!) с показанным AutoVerify=True.

Код: Выделить всё

using Android.App;
using Android.Content;
using Android.OS;

namespace GoogleDriveLocalSyncProxy.Maui.TestProject.Platforms.Android
{

[Activity(Label = "FirebaseCallback", Exported = true)]
[IntentFilter(new[] { Intent.ActionView },
Categories = new[] { Intent.CategoryDefault, Intent.CategoryBrowsable },
DataScheme = "https",
DataHost = "echoessyncproxy.com",
DataPath ="/auth",
DataPathPrefix = "/auth",
AutoVerify = true)]

public class FirebaseCallback : WebAuthenticatorCallbackActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
System.Diagnostics.Debug.WriteLine($"{nameof(WebAuthenticatorCallbackActivity)}: code = {Intent?.Data?.GetQueryParameter("code")}");
}
}
}

JSON
https://echoessyncproxy.com/.well-known/assetlinks.json

Код: Выделить всё

{
"relation": [ "delegate_permission/common.handle_all_urls" ],
"target": {
"namespace": "android_app",
"package_name": "com.ivsoftware.echoessyncproxy.maui",
"sha256_cert_fingerprints": [
"A8:F5:14:1E:38:A7:1E:83:56:DC:63:9B:94:DF:06:B5:A1:54:06:BB:45:E7:02:E8:F0:2A:61:CC:55:58:C5:CA",
"BB:D1:A0:90:5E:E9:F6:71:23:CB:99:A6:84:18:7A:E2:CD:BF:4B:AE:F8:C0:C6:46:6E:65:5C:8B:A8:3D:2C:34"
]
}
}
ADB

Код: Выделить всё

>keytool -printcert -jarfile ...

Signer #1:

Certificate #1:
Owner: CN={my name}, OU={my org unit}, O={my company}, L={my city}, ST={my state}, C={my country}
Issuer: CN={my name}, OU={my org unit}, O={my company}, L={my city}, ST={my state}, C={my country}
Serial number: 1047269e
Valid from: Tue Dec 03 14:31:15 MST 2024 until: Sat Apr 20 15:31:15 MDT 2052
Certificate fingerprints:
SHA1: A6:4F:C9:B3:A5:55:27:87:C5:DF:6F:2A:3B:BA:16:5A:4E:C0:7E:90
SHA256: BB:D1:A0:90:5E:E9:F6:71:23:CB:99:A6:84:18:7A:E2:CD:BF:4B:AE:F8:C0:C6:46:6E:65:5C:8B:A8:3D:2C:34
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key

>adb shell pm get-app-links com.ivsoftware.echoessyncproxy.maui
com.ivsoftware.echoessyncproxy.maui:
ID: 926983c3-9969-42f4-9e39-e408c79dcc14
Signatures: [BB:D1:A0:90:5E:E9:F6:71:23:CB:99:A6:84:18:7A:E2:CD:BF:4B:AE:F8:C0:C6:46:6E:65:5C:8B:A8:3D:2C:34]
Domain verification state:
echoessyncproxy.com: 1024
Код 0x0400 (1024) означает «не проверено».


Подробнее здесь: https://stackoverflow.com/questions/792 ... -otherwise
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»