Два действия над одним тегом NFC

Я хочу знать, возможно ли сделать следующее;

Я хочу иметь тег nfc, который работает в сочетании с разрабатываемым Android-приложением.

Если я проведу пальцем по тегу, и мое приложение будет установлено на телефоне, я захочу прочитать текстовые данные из тега. Ничего особенного, только число до 999.

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

Возможно ли это с тем, как андроид пошел о чтении намерений?

из моего понимания (я не профессионал в NFC) вы можете сделать только один из них?

Или я не прав?

Редактировать:

Есть ли способ сделать это без загрузки приложения в магазине Play? Это для университетского проекта, и я не думаю, что они будут счастливы, если я сделаю проект общедоступным. я надеялся просто взять их по ссылке, где вы можете скачать.apk

2 ответа

Если необходимо избегать Play Store, вы можете сохранить в теге сообщение NDEF, содержащее две записи: первая запись содержит URL-адрес страницы загрузки вашего приложения. Вторая запись содержит данные в виде простого текста. (На самом деле, вы можете даже закодировать данные в URL и, следовательно, использовать только одну запись URI.)

+ ---------------------------------------------- + - ---------------- +
| Запись URI: http://www.zapnologica.com/myapp | Текстовая запись: nnn |
+----------------------------------------------+----------------- +

Если ваше приложение не установлено, в веб-браузере пользователя откроется страница загрузки приложения (здесь: http://www.zapnologica.com/myapp).

Чтобы автоматически запускать приложение после сканирования тегов, оно должно определить фильтр намерений для URL-адреса загрузки:

<intent-filter>
    <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:scheme="http"
          android:host="www.zapnologica.com"
          android:pathPrefix="/myapp" />
</intent-filter>

Затем в вашем приложении вы можете прочитать все сообщение NDEF из тега (фактически сообщение NDEF будет предоставлено вашему приложению с дополнительной целью). EXTRA_NDEF_MESSAGES автоматически):

if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) {
    Parcelable[] rawMsgs = Intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
    if (rawMsgs != null) {
        msgs = new NdefMessage[rawMsgs.length];
        for (int i = 0; i < rawMsgs.length; i++) {
            msgs[i] = (NdefMessage) rawMsgs[i];
        }
    }
}

Таким образом, msg[0].getRecords() вернет две записи - запись URI и текстовую запись.

Я думаю, что это то, что вы ищете:

Учебник NFC.

Если пользователь без нашего приложения прикоснется к тегу, он будет использовать встроенный механизм, чтобы перенести его на страницу загрузки приложения в Android Play Store. После установки любых последующих нажатий запустит приложение и покажет игровую карту на экране.

Другие вопросы по тегам