DKCloudID_NFC_Android
Демонстрация считывания информации с удостоверения личности с помощью технологии NFC на смартфоне от компании «Дэко» (深圳市德科物联技术有限公司). Для получения дополнительной информации посетите официальный сайт компании Дэко.
Шаг 1. Добавьте репозиторий JitPack в файл сборки
Откройте корневой файл build.gradle и добавьте строку maven { url 'https://jitpack.io' } в конец секции repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Шаг 2. Добавьте implementation 'com.gitee.lochy:dkcloudid-nfc-android-sdk:v2.0.1' в секцию dependency
dependencies {
implementation 'com.gitee.lochy:dkcloudid-nfc-android-sdk:v2.0.1'
//Регистрация устройства POST запрос, необходимо использовать
implementation "com.squareup.okhttp3:okhttp:4.9.0"
implementation 'com.squareup.okio:okio:2.8.0'
}
Шаг 3. В файле AndroidManifest.xml добавьте разрешения для сети, доступа к IMEI и NFC
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
Шаг 4. Инициализация NFC, облачного декодирования, IDCard и запроса разрешения на доступ к IMEI
//Инициализация NFC
mAdapter = NfcAdapter.getDefaultAdapter(this);
pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this,
getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
IntentFilter tech = new IntentFilter(NfcAdapter.ACTION_TECH_DISCOVERED);
intentFiltersArray = new IntentFilter[]{tech,};
techListsArray = new String[][]{new String[]{NfcB.class.getName()}};
//Получение разрешения на доступ к IMEI
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (checkSelfPermission(Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
MainActivity.this.requestPermissions(new String[]{
Manifest.permission.READ_PHONE_STATE,
}, 1);
}
}
//Инициализация облачного декодера. Обратите внимание: этот аккаунт является тестовым аккаунтом и может быть закрыт в любое время. Пожалуйста, обратитесь к поставщику за официальным паролем аккаунта
MsgCrypt msgCrypt = new MsgCrypt(this, "60273839", "VwQC9MzMY5hVx/Ky61IYRgP3q/ZRujTjvZfcJAnC+1w=");
//Инициализация устройства
dkNfcDevice = new DKNfcDevice(msgCrypt);
dkNfcDevice.setCallBack(deviceManagerCallback);
Шаг 5. Добавление обратного вызова при чтении карты
@Override
public void onNewIntent(Intent intent_nfc) {
final Tag tag = intent_nfc.getParcelableExtra(NfcAdapter.EXTRA_TAG);
final NfcB nfcB = NfcB.get(tag);
if (nfcB != null) {
dkNfcDevice.onFinCard(nfcB);
}
}
//Обратный вызов класса управления устройством
private DeviceManagerCallback deviceManagerCallback = new DeviceManagerCallback() {
//Начало запроса облачного анализа удостоверения личности
@Override
public void onReceiveSamVIdStart(byte[] initData) {
super.onReceiveSamVIdStart(initData);
Log.d(TAG, "Начало анализа");
}
//Прогресс облачного анализа удостоверения личности
@Override
public void onReceiveSamVIdSchedule(int rate) {
super.onReceiveSamVIdSchedule(rate);
}
//Исключение при облачном анализе удостоверения личности
@Override
public void onReceiveSamVIdException(String msg) {
super.onReceiveSamVIdException(msg);
//Отображение сообщения об ошибке
//logViewln(msg);
}
//Результат облачного анализа данных удостоверения личности
@Override
public void onReceiveIDCardData(IDCardData idCardData) {
super.onReceiveIDCardData(idCardData);
//Отображение данных удостоверения личности
showIDMsg(idCardData);
}
};
Шаг 6. Добавьте следующий код в методы onResume и onPause
@Override
protected void onResume() {
mAdapter.enableForegroundDispatch(
this, pendingIntent, intentFiltersArray, techListsArray);
super.onResume();
}
@Override
protected void onPause() {
if (this.isFinishing()) {
mAdapter.disableForegroundDispatch(this);
}
super.onPause();
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )