Как проверить определенные возможности типа NFC хост-устройства Android - PullRequest
0 голосов
/ 19 января 2019

Я делаю простое приложение, которое обнаруживает устройство Android, на котором запущено приложение, поддерживает NFC type-f (FeliCa) и возможность шифрования HCE / SE.

Кроме того, я хочу знать, если хост-устройство не поддерживает NFC type-f или его возможности шифрования HCE / SE, связана ли эта проблема с аппаратным ограничением (отсутствие поддержки чипа NFC хоста) или программным ограничением (например, текущее ПЗУ не поддерживает его), и если это ограничение программного обеспечения (которое может быть исправлено, даже если для этого требуется разрешение root, отсутствие лицензии на встроенное ПО для чипа NFC), я хочу знать точную причину, чтобы я мог решить эту проблему.

Но я не знаю, как проверить работоспособность хоста определенного типа NFC, и нет никакого упоминания об Android API для проверки поддержки определенного типа NFC.

1 Ответ

0 голосов
/ 20 января 2019

Чтобы определить, поддерживается ли 'NFC-F', используйте:

PackageManager.FEATURE_NFC_HOST_CARD_EMULATION_NFCF

как в:

 if (getPackageManager().hasSystemFeature(
         PackageManager.FEATURE_NFC_HOST_CARD_EMULATION_NFCF)) {
    // has feature
 }

Это было обнаружено путем проверки Android Open Source Project - Эмуляция хост-карты FeliCa .

Документация AOSP гласит, что HCE FeliCa требуется оборудование NFC, поддерживающее стандарт NFC-F (JIS 6319-4).

Кроме того, в документации AOSP, в которой содержится ссылка на набор тестов совместимости Android, можно найти конкретный набор тестов Android 9.0 для NFC и содержит специальный набор HCE FeliCa . Поскольку это набор тестов, дополнительный код для тестирования связи с картой, по-видимому, находится внутри.

...