Page tree

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Общая информация

Эта статья описывает интеграцию устройств Рутокен в мобильные приложения для платформы Android без использования приложения "Панель управления Рутокен".

Поддерживаемые версии Android

Android 7.0 (API Level 24) и выше.

Настройка зависимостей в проекте

Для встраивания необходимо добавить в зависимости библиотеку rtpcscbridge

implementation 'ru.rutoken.rtpcscbridge:rtpcscbridge:1.0.0'


implementation("ru.rutoken.rtpcscbridge:rtpcscbridge:1.0.0")



Библиотека доступна в репозитории Maven Central.

Точкой входа встраивания является класс ru.rutoken.rtpcscbridge.RtPcscBridge, который необходим для инициализации библиотеки rtpcscbridge.

Для каждого процесса приложения, в котором происходит взаимодействие с устройствами Рутокен, необходимо вызывать статический метод setAppContext и передавать ему в качестве параметра Android application context.

Типичное место вызова метода – внутри onCreate() класса-наследника Application.

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        RtPcscBridge.setAppContext(this);
    }
}

Режимы использования встраивания

Встраивание поддерживает два режима использования:

В данном режиме осуществляется явный вызов методов инициализации и финализации библиотеки, а также прямое управление отслеживанием устройств Рутокен с NFC.
Это обеспечивает полный контроль над поведением библиотеки со стороны приложения.

Например:
Активация встраивания только для части Activity приложения.

В данном режиме встраивание активируется для всех Activity приложения, реализующих интерфейс OnNewIntentProvider.

Методы ручного API вызываются автоматически на определенных этапах жизненного цикла приложения.


Ручной API встраивания 

Для работы с устройствами Рутокен в Ручном режиме применяется интерфейс ru.rutoken.rttransport.RtTransport. Его инстанс можно получить с помощью метода RtPcscBridge.getTransport().

Рекомендуется  следующий порядок вызова API:

Порядок
вызова

Метод

Описание

Место вызова

1RtTransport.initialize(context)Инициализирует встраивание.
Библиотека начинает отслеживать подключение и отключение устройств Рутокен (кроме подключений по NFC) и позволяет настроить дальнейшую работу с NFC

Рекомендуется:

  • в методе Activity.onStart();
  • в методе Service.onCreate() – в случае использования внутри сервиса.
2RtTransport.enableNfcForegroundDispatch(activity)Включает NFC foreground dispatching для данной Activity

ТОЛЬКО из Main потока в методе Activity.onResume().

3RtTransport.handleNfcIntent(intent)Обрабатывает NFC интент, полученный при прикладывании устройств Рутокен.
Интенты от устройств других производителей не обрабатываются.
Применяется для дальнейшей установки соединения с Рутокен

При получении каждого NFC интента.

Например.
внутри Activity.onNewIntent()

4RtTransport.disableNfcForegroundDispatch(activity)Выключает NFC foreground dispatching для данной ActivityТОЛЬКО из Main потока в методе Activity.onPause()
5RtTransport.finalize(context)Завершает работу встраивания

Рекомендуется:

  • в методе Activity.onStop();
  • в методе Service.onDestroy() – в случае использования внутри сервиса.

Автоматический API встраивания

Для работы в Автоматическом режиме применяется класс ru.rutoken.rttransport.RtTransportExtension. Его инстанс можно получить из метода RtPcscBridge.getTransportExtension().

Для включения Автоматического режима необходимо вызвать метод attachToLifecycle.

Пример.
Инициализация библиотеки и включение автоматического режима внутри класса-наследника Application.

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        RtPcscBridge.setAppContext(this);
        RtPcscBridge.getTransportExtension().attachToLifecycle(this, true);
    }
}

В параметры метода attachToLifecycle дополнительно можно передать флаг useAutoNfcHandling для включения/выключения автоматической обработки устройств Рутокен с NFC.
По умолчанию значение флага – true.

Автоматическая обработка устройств Рутокен с NFC осуществляется только для тех Activity, которые реализуют интерфейс OnNewIntentProvider.

Для отключения Автоматического режима применяется метод RtPcscBridge.getTransportExtension().detachFromLifecycle(app).

Если взаимодействие с устройством Рутокен осуществляется на протяжении всей работы приложения, то данный метод можно не применять.

Отслеживание подключения (отключения) устройств Рутокен

Встраивание позволяет отслеживать подключение и отключение устройств Рутокен с помощью интерфейса ru.rutoken.rttransport.RtTransport.PcscReaderObserver.

Отслеживание подключения (отключения) устройств Рутокен особенно применимо при работе через КриптоПро CSP.


  • No labels