rfid_flutter_android 0.1.1 copy "rfid_flutter_android: ^0.1.1" to clipboard
rfid_flutter_android: ^0.1.1 copied to clipboard

PlatformAndroid

Flutter Android plug-in implementation of RFID, Barcode and other functions.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:bot_toast/bot_toast.dart';
import 'package:rfid_flutter_android_example/view/device_info_view.dart';
import 'package:signals/signals_flutter.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'l10n/app_localizations.dart';
import 'entity/app_global_state.dart';
import 'widget/feature_card.dart';
import 'view/rfid_main_view.dart';
import 'view/barcode_view.dart';
import 'package:rfid_flutter_android/rfid_flutter_android.dart';
import 'package:package_info_plus/package_info_plus.dart';

void main() {
  runApp(const MyApp());
}

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

  @override
  Widget build(BuildContext context) {
    return Watch.builder(
      builder: (context) {
        return MaterialApp(
          title: 'RFID Flutter Android',
          builder: BotToastInit(),
          navigatorObservers: [BotToastNavigatorObserver()],
          theme: ThemeData(
            colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue),
            useMaterial3: true,
          ),
          localizationsDelegates: const [
            AppLocalizations.delegate,
            GlobalMaterialLocalizations.delegate,
            GlobalWidgetsLocalizations.delegate,
            GlobalCupertinoLocalizations.delegate,
          ],
          supportedLocales: AppLocalizations.supportedLocales,
          locale: appState.currentLocale.watch(context),
          home: const RfidMainPage(),
        );
      },
    );
  }
}

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

  @override
  State<RfidMainPage> createState() => _RfidMainPageState();
}

class _RfidMainPageState extends State<RfidMainPage> with TickerProviderStateMixin {
  final _appNameAndVersion = signal('RFID Flutter Demo');

  @override
  void initState() {
    super.initState();

    PackageInfo.fromPlatform().then((packageInfo) {
      _appNameAndVersion.value = 'RFID Flutter Demo_v${packageInfo.version}';
    });

    DeviceManager.instance.isHandset().then((res) {
      appState.isHandset.value = res.data ?? false;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Watch.builder(builder: (context) {
          return Text(_appNameAndVersion.watch(context));
        }),
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        // elevation: 0,
        actions: [
          IconButton(
            icon: Image.asset(
              appState.currentLocale.value.languageCode == 'en' ? 'assets/image/lang_en.png' : 'assets/image/lang_cn.png',
              width: 28,
            ),
            onPressed: () {
              // AppBottomSheet.show(context);
              appState.setLocale(appState.currentLocale.value.languageCode == 'en' ? const Locale('zh') : const Locale('en'));
            },
          ),
        ],
      ),
      body: SafeArea(
        child: Padding(
          padding: const EdgeInsets.all(10.0),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              Expanded(
                child: Column(
                  children: [
                    FeatureCard(
                      title: AppLocalizations.of(context)!.deviceInfo,
                      subtitle: AppLocalizations.of(context)!.deviceInfoSubtitle,
                      icon: Icons.info_outline,
                      color: Colors.black,
                      onTap: () {
                        Navigator.of(context).push(
                          MaterialPageRoute(
                            builder: (context) => const DeviceInfoView(),
                          ),
                        );
                      },
                    ),
                    const SizedBox(height: 10),
                    FeatureCard(
                      title: AppLocalizations.of(context)!.rfidScanner,
                      subtitle: AppLocalizations.of(context)!.rfidScannerSubtitle,
                      icon: Icons.sensors,
                      color: Colors.blue,
                      onTap: () {
                        Navigator.of(context).push(
                          MaterialPageRoute(
                            builder: (context) => const RfidMainView(),
                          ),
                        );
                      },
                    ),
                    const SizedBox(height: 10),
                    FeatureCard(
                      title: AppLocalizations.of(context)!.barcodeScanner,
                      subtitle: AppLocalizations.of(context)!.barcodeScannerSubtitle,
                      icon: Icons.qr_code_scanner,
                      color: Colors.green,
                      onTap: () {
                        Navigator.of(context).push(
                          MaterialPageRoute(
                            builder: (context) => const BarcodeView(),
                          ),
                        );
                      },
                    ),
                    const Spacer(),
                  ],
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
1
likes
150
points
164
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter Android plug-in implementation of RFID, Barcode and other functions.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter, rfid_flutter_core

More

Packages that depend on rfid_flutter_android

Packages that implement rfid_flutter_android