Interface BarcodeScanService

  • All Known Implementing Classes:
    AndroidBarcodeScanService, DummyBarcodeScanService, IOSBarcodeScanService

    public interface BarcodeScanService
    The barcode scanner can be used to scan barcodes of different types. The implementation of the service will typically open the device's camera to scan for a barcode. When a valid barcode could be detected and scanned, the string value that is represented by the barcode will be returned as a result.

    Example

     Services.get(BarcodeScanService.class).ifPresent(service -> {
          Optional<String> barcode = barcodeScanService.scan();
          barcode.ifPresent(barcodeValue -> System.out.println("Scanned Bar Code: " + barcodeValue));
      });

    Android Configuration

    The permission android.permission.CAMERA needs to be added together with the following activity configuration that handles the SCAN intent of the BarcodeScanService.

     <manifest ...>
        <uses-permission android:name="android.permission.CAMERA"/>
        ...
        <application ...>
          ...
          <activity android:name="com.gluonhq.impl.attach.plugins.barcode.android.scan.zxing.CaptureActivity"
                    android:screenOrientation="sensorLandscape"
                    android:clearTaskOnLaunch="true"
                    android:stateNotNeeded="true"
                    android:windowSoftInputMode="stateAlwaysHidden">
            <intent-filter>
              <action android:name="com.gluonhq.attach.plugins.barcode.android.scan.SCAN"/>
              <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
          </activity>
          <activity android:name="com.gluonhq.impl.attach.plugins.android.PermissionRequestActivity" />
        </application>
      </manifest>

    iOS Configuration

    The following keys are required:

     <key>NSCameraUsageDescription</key>
      <string>Reason to use Camera Service (iOS 10+)</string>
    Since:
    3.0.0
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      static java.util.Optional<BarcodeScanService> create()
      Returns an instance of BarcodeScanService.
      java.util.Optional<java.lang.String> scan()
      Starts up the scanner functionality (commonly provided via the camera), and then parsed by Attach to determine the string the barcode represents.
      java.util.Optional<java.lang.String> scan​(java.lang.String title, java.lang.String legend, java.lang.String resultText)
      Starts up the scanner functionality (commonly provided via the camera), and then parsed by Attach to determine the string the barcode represents.
    • Method Detail

      • scan

        java.util.Optional<java.lang.String> scan()
        Starts up the scanner functionality (commonly provided via the camera), and then parsed by Attach to determine the string the barcode represents.
        Returns:
        Returns an Optional containing the parsed string. The Optional may be empty if the String fails to be parsed for any reason, or if the user cancels the operation.
      • scan

        java.util.Optional<java.lang.String> scan​(java.lang.String title,
                                                  java.lang.String legend,
                                                  java.lang.String resultText)
        Starts up the scanner functionality (commonly provided via the camera), and then parsed by Attach to determine the string the barcode represents.
        Parameters:
        title - The title of the scan view. If null or empty nothing will be displayed.
        legend - An explanatory message displayed in the scan view. If null or empty nothing will be displayed.
        resultText - The text to display when the scan ends successfully, before the scanned text. If empty or null, the result won't be shown.
        Returns:
        Returns an Optional containing the parsed string. The Optional may be empty if the String fails to be parsed for any reason, or if the user cancels the operation.
        Since:
        3.8.0