1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lochy-DKCloudID_NFC_Android

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/lochy-DKCloudID_NFC_Android.git
git@api.gitlife.ru:oschina-mirror/lochy-DKCloudID_NFC_Android.git
oschina-mirror
lochy-DKCloudID_NFC_Android
lochy-DKCloudID_NFC_Android
master