hardware_scanner_input 0.1.0 copy "hardware_scanner_input: ^0.1.0" to clipboard
hardware_scanner_input: ^0.1.0 copied to clipboard

A Flutter widget that captures input from HID-mode hardware barcode scanners on Android without showing the software keyboard. Supports Enter-suffix and silence-flush scanners.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:hardware_scanner_input/hardware_scanner_input.dart';

void main() => runApp(const ExampleApp());

class ExampleApp extends StatelessWidget {
  const ExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'HardwareScannerInput example',
      theme: ThemeData(useMaterial3: true, colorSchemeSeed: Colors.indigo),
      home: const ScannerScreen(),
    );
  }
}

class ScannerScreen extends StatefulWidget {
  const ScannerScreen({super.key});

  @override
  State<ScannerScreen> createState() => _ScannerScreenState();
}

class _ScannerScreenState extends State<ScannerScreen> {
  final _scans = <String>[];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Hardware scanner demo')),
      body: Stack(
        fit: StackFit.expand,
        children: [
          // Bottom layer always holds focus — invisible to the user.
          HardwareScannerInput(
            onScanned: (value) => setState(() => _scans.insert(0, value)),
          ),
          // Visible UI on top.
          Padding(
            padding: const EdgeInsets.all(24),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.stretch,
              children: [
                const Card(
                  margin: EdgeInsets.zero,
                  child: Padding(
                    padding: EdgeInsets.all(16),
                    child: Row(
                      children: [
                        Icon(Icons.qr_code_scanner),
                        SizedBox(width: 12),
                        Expanded(
                          child: Text(
                            'Trigger your hardware scanner — scans appear '
                            'below. The on-screen keyboard never opens.',
                          ),
                        ),
                      ],
                    ),
                  ),
                ),
                const SizedBox(height: 16),
                Expanded(
                  child: _scans.isEmpty
                      ? const Center(child: Text('No scans yet.'))
                      : ListView.separated(
                          itemCount: _scans.length,
                          separatorBuilder: (_, __) => const Divider(height: 1),
                          itemBuilder: (_, i) => ListTile(
                            leading: const Icon(Icons.barcode_reader),
                            title: Text(_scans[i]),
                          ),
                        ),
                ),
              ],
            ),
          ),
        ],
      ),
    );
  }
}
0
likes
160
points
103
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A Flutter widget that captures input from HID-mode hardware barcode scanners on Android without showing the software keyboard. Supports Enter-suffix and silence-flush scanners.

Repository (GitHub)
View/report issues

Topics

#barcode #scanner #hid #android #keyboard

License

MIT (license)

Dependencies

flutter

More

Packages that depend on hardware_scanner_input