Открыть ссылку на изображение из тега NFC

У меня есть NFC-метка (FeliCa), где я храню URL-адрес изображения. (что-то вроде https://www.google.de/images/branding/googlelogo/2x/googlelogo_color_272x92dp.pngнапример). Этот тег эмулируется USB-считывателем NFC ACR1252U , но для любого Android-смартфона он ведет себя как любой реальный физический тег. Когда я подхожу к своему Android 4.4-Smartphone к (эмулируемому) тегу, он автоматически открывает мое приложение-браузер и переходит к ссылке на изображение.

Все идет нормально.

Однако моя цель состоит в том, чтобы Android-смартфон не открывал изображение в браузере, а сохранял изображение в хранилище и / или отображал его в приложении галереи изображений Android-телефона. Я хочу добиться этого, сделав как можно меньше шагов.

Наверняка у пользователя должно быть какое-то приглашение «Хотите ли вы сохранить это изображение» или что-то в этом роде. Но как я могу этого добиться? Как мне сохранить ссылку на изображение в nfc-теге, чтобы изображение открывалось в галерее, а не в браузере?

Ответы (1)

Нет, нет такой опции, которую вы можете установить для тега NFC, чтобы заставить Android немедленно сохранить изображение или показать его в приложении галереи. Причина этого в том, что вы храните только URL-адрес в теге. Перед фактическим открытием URL-адреса Android даже не знает тип данных, стоящий за URL-адресом (например, «это изображение»). На самом деле URL-адреса не имеют такой концепции типа данных, они просто ссылаются на какое-то место хранения. Следовательно, Android может открыть только приложение, зарегистрированное для этого URL-адреса (или URL-адресов в целом), которым обычно является веб-браузер.

Что вы можете сделать:

  1. Если у вас есть контроль над серверной частью, вы можете попытаться принудительно загрузить образ с сервера. Вы можете сделать это, установив заголовок Content-Disposition, когда изображение запрашивается с сервера:

    Content-Disposition: attachment; filename="googlelogo_color_272x92dp.png"
    
  2. Если изображение соответствует вашему эмулируемому тегу, вы можете попытаться встроить его в запись типа MIME вместо передачи URL-адреса изображения. На многих устройствах Android записи типа MIME изображения должны по умолчанию открываться в стандартном приложении «Теги» (см. « Чтение тега NFC без специального приложения? »). Однако я никогда не проверял, насколько хорошо это работает (и отображается ли изображение вообще). См . Изображение в тегах nfc , чтобы узнать, как такая запись типа MIME может быть создана с помощью кода Android.

Спасибо. Я выбрал решение 1. URL-адрес открывает HTML-сайт, содержащий изображение. JavaScript, который просит пользователя сохранить изображение. Если пользователь подтвердит это, изображение откроется в галерее изображений.