Как указать mimeType для чтения тега NFC с URL - PullRequest
2 голосов
/ 19 августа 2011

У меня есть Uri NFC TAG с: pay://myName/12345

и в моем фильтре намерений у меня есть:

<intent-filter>
    <action android:name="android.nfc.action.NDEF_DISCOVERED" />
    <data android:mimeType="text/plain" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

как мне указать данные MIME-Type для запуска моегоПриложение без выбора приложения?

1 Ответ

11 голосов
/ 19 августа 2011

Ну, в идеале, вы бы не изобрели такую ​​нестандартную схему.Лучше создать тег с URL-адресом HTTP, который указывает на веб-страницу, где у вас есть действие Android, которое также обрабатывает этот URL-адрес - значение 1001 * для Android будет более конкретным и, следовательно, будет иметь приоритет при его установке.Таким образом, тег работает для многих других устройств.

При этом, независимо от синтаксиса URL, используйте соответствующий элемент <data>.Вместо использования android:mimeType используйте android:scheme и другие атрибуты.

Вот пример проекта , который позволяет пользователям записывать URL-адрес в тег, совместимый с NDEF (общий доступ через общий ресурс).пункт меню опций в браузере).Если вы напишите конкретный URL-адрес для тега, приложение также будет иметь действие, которое будет запущено при сканировании тега, предоставлено этой записью манифеста:

    <activity android:name="URLHandler"
              android:label="@string/app_name">
        <intent-filter android:label="@string/app_name">
          <action android:name="android.nfc.action.NDEF_DISCOVERED" />
          <data android:scheme="http"
                android:host="commonsware.com"
                android:path="/nfctest"
          />
          <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
...