У меня есть приложение, которое сканирует теги NFC, собирает данные из тега и отправляет эти данные на сервер. Данные о теге представлены в следующем формате:Сканирование NFC-тегов запускает только мое приложение для запуска
1,3,30012,somebodys name
Эти теги размещаются в домах клиента для лиц, осуществляющих уход. Каждое сканирование записывает их в вызов.
Это работает до сих пор. Проблема, с которой я сталкиваюсь сейчас, заключается в том, что лица, осуществляющие уход, должны использовать другое приложение вместе с нашим приложением, которое сканирует другой тег NFC с разными данными на нем и отправляет его на другой сервер. Это приложение установлено на телефоне одного и того же опекуна.
Это другое приложение будет сканировать теги NFC, которые могут иметь данные о нем в следующем формате:
abc|123??
Вопрос в том, как я могу гарантировать, что, когда сиделка сканирует наш тег, только наше приложение запускается?
Есть ли способ в манифесте указать это в фильтрах намерений для моего приложения?
Это то, что у меня есть в манифесте для моей деятельности. Я понимаю, что если Intent запущен и есть 2 приложения, которые могут обрабатывать тэг NFC, тогда пользователю предоставляется список. Android-документы препятствуют этому.
Заранее спасибо.
[Изменить] Одна вещь, которую я заметил, если телефон находится на главном экране и я сканирую тег, то мое приложение запускается. Это нормально, если опекун сканирует правильный тег.
<activity android:name=".NfcscannerActivity"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
<intent-filter>
<action android:name="com.carefreegroup.rr3.QRCODE_ACTION" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/nfc_tech_filter" />
</activity>
Хорошо спасибо. В момент создания тегов я записываю данные в тег с помощью приложения tagwriter и указываю «Обычный текст». Как мне написать mimetype в тег, чтобы мое приложение могло фильтровать для него? – turtleboy
Вы можете попробовать приложение «Инструменты NFC». Это позволяет создавать пользовательские типы. – corvairjo
@corvairjo Привет, я загрузил приложение, но это не очевидно, как это сделать. Я нажимаю на Data-add custom record. Затем в приложении типа содержимого добавьте/vnd.com.my.app.package.customString? – turtleboy