Как можно добавить SDK Атол SmartSlim в Android Studio?

Атол SmartSlim представляет собой терминал сбора данных на базе Андроида 7.0, который оснащен встроенным сканером 1D и 2D кодов. Для получения отсканированных данных необходимо интегрировать его SDK в проект. Данный SDK доступен в центре загрузки Атола, и вы можете скачать его по [этой ссылке](https://fs.atol.ru/_layouts/15/atol.templates/Handlers/FileHandler.ashx?guid=b56422fc-e858-48fb-9625-69f3f5986ee1&webUrl=). Однако описание SDK оставляет желать лучшего и в основном состоит из примеров кода, которые уже содержатся в самом SDK.

У меня есть два основных вопроса для понимания процесса:
1) Как правильно интегрировать этот SDK в проект Android Studio?
2) Как создать экземпляр XCScanner и перехватить нажатие физической кнопки Scan, чтобы отображать результат сканирования в текстовом поле?
  • 8 октября 2024 г. 12:35
Ответы на вопрос 3
Чтобы интегрировать SDK Атол SmartSlim в ваш проект Android Studio и использовать функциональность сканера, вы можете следовать приведённым ниже шагам.

### 1) Интеграция SDK в проект Android Studio

#### Шаг 1: Скачайте SDK
Скачайте SDK по предоставленной ссылке. Обычно это будет ZIP-архив, содержащий файлы библиотеки и примеры.

#### Шаг 2: Добавление библиотеки в проект
1. Распакуйте загруженный ZIP-файл.
2. Найдите файл `.aar` или `.jar`, который является библиотекой SDK. Обычно он находится в папке `libs` или `bin`.
3. Скопируйте этот файл в папку `libs` вашего проекта Android. Если этой папки нет, создайте её в корне вашего модуля `app`.
4. Откройте `build.gradle` вашего модуля (обычно находится в папке `app`).
5. Добавьте следующую строчку в секцию `dependencies`, заменив `smartslim-sdk.aar` на имя вашего файла:

    ```groovy
    implementation files('libs/smartslim-sdk.aar')
    ```

6. Синхронизируйте проект с Gradle, нажав `Sync Now`.

#### Шаг 3: Настройка разрешений
Добавьте необходимые разрешения в файл `AndroidManifest.xml`, например:

```xml
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
```

Убедитесь, что у вас также есть разрешение на использование физической кнопки сканирования, если это необходимо.

### 2) Создание экземпляра XCScanner и перехват нажатия кнопки Scan

#### Шаг 1: Инициализация XCScanner
В вашем `Activity` или `Fragment` создайте экземпляр `XCScanner`. Например:

```java
import com.atol.xc.Scanner.XCScanner;

public class MainActivity extends AppCompatActivity {
    private XCScanner scanner;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Инициализация сканера
        scanner = XCScanner.getInstance();
        scanner.setScannerListener(new XCScanner.ScannerListener() {
            @Override
            public void onScan(String barcode) {
                // Отображаем результат в текстовом поле
                TextView textView = findViewById(R.id.textViewBarcode);
                textView.setText(barcode);
            }
        });
    }
    
    @Override
    protected void onResume() {
        super.onResume();
        scanner.startScanning(); // Начинаем сканирование при возобновлении Activity
    }
    
    @Override
    protected void onPause() {
        super.onPause();
        scanner.stopScanning(); // Останавливаем сканирование при уходе Activity
    }
}
```

#### Шаг 2: Перехват нажатия кнопки Scan
Атол SmartSlim SDK, скорее всего, будет иметь механизм для перехвата нажатия физической кнопки. Обычно это может выглядеть так:

```java
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_SCAN) { // Клавиша сканирования
        scanner.triggerScan(); // Вызываем сканирование
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
```

### Пример XML макета
Не забудьте добавить `TextView` или другой элемент для отображения результата сканирования в вашем макете XML:

```xml
<TextView
    android:id="@+id/textViewBarcode"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Сканированный код будет здесь" />
```

### Заключение
С помощью этих шагов вы сможете интегрировать SDK Атол SmartSlim в ваш проект Android Studio, создать экземпляр `XCScanner` и обрабатывать результаты сканирования. Не забудьте ознакомиться с документацией по SDK, если она доступна, для более детальной информации о всех доступных методах и настройках.
во первых, Вам придется решить вопрос. Вы пишете приложение только под этот терминал 
или нет. Если программа будет более универсальной, то придется решать каким образом она будет
работать на других. Толи у вас несколько вариантов релиза или в рантайме проверяете.

В основе сдк нативная либа (.so файл), который будет правильно работать только на их оборудовании.
А если платформа не arneabi, то просто сразу прокрешиться.

Дальше в состав SDK входит java класс, который делает мепинг вызовов из явы в нативную часть.

https://habr.com/ru/companies/otus/articles/844110/

В конце концов у вас там в папочке src пример приложения
Перетащи файл SDK в папку libs, проверь AndroidManifest.xml прописаны нужные разрешения для работы с камерой и сканером, после добавления SDK, создаём и инициализируем XCScanner -> обычно кнопка физического сканера отправляет системное событие (Intent или KeyEvent)
Похожие вопросы