bearound_flutter_sdk 1.0.3 copy "bearound_flutter_sdk: ^1.0.3" to clipboard
bearound_flutter_sdk: ^1.0.3 copied to clipboard

Bearound Flutter SDK

example/lib/main.dart

import 'package:flutter/material.dart';
import 'dart:async';
import 'package:bearound_flutter_sdk/bearound_flutter_sdk.dart';

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

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

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: BeaconHomePage(),
      debugShowCheckedModeBanner: false,
    );
  }
}

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

  @override
  State<BeaconHomePage> createState() => _BeaconHomePageState();
}

class _BeaconHomePageState extends State<BeaconHomePage> {
  bool _hasPermission = false;
  bool _isScanning = false;
  String _status = "Parado";

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

  Future<void> _checkAndRequestPermission() async {
    final granted = await BearoundFlutterSdk.requestPermissions();
    setState(() {
      _hasPermission = granted;
      _status = granted ? "Permissões OK" : "Permissões necessárias!";
    });
  }

  Future<void> _startScan() async {
    await BearoundFlutterSdk.startScan("CLIENT_TOKEN", debug: true);
    setState(() {
      _isScanning = true;
      _status = "Scanning…";
    });
  }

  Future<void> _stopScan() async {
    await BearoundFlutterSdk.stopScan();
    setState(() {
      _isScanning = false;
      _status = "Parado";
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Bearound Flutter SDK Example')),
      body: Container(
        width: double.infinity,
        padding: const EdgeInsets.all(24),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Icon(
              _isScanning ? Icons.wifi_tethering : Icons.wifi_off,
              size: 60,
              color: _isScanning ? Colors.green : Colors.red,
            ),
            const SizedBox(height: 16),
            Text("Status: $_status", style: const TextStyle(fontSize: 18)),
            const SizedBox(height: 24),
            if (!_hasPermission)
              ElevatedButton(
                onPressed: _checkAndRequestPermission,
                child: const Text("Solicitar Permissões"),
              ),
            if (_hasPermission && !_isScanning)
              ElevatedButton(
                onPressed: _startScan,
                child: const Text("Iniciar Beacon Scan"),
              ),
            if (_isScanning)
              ElevatedButton(
                onPressed: _stopScan,
                style: ElevatedButton.styleFrom(backgroundColor: Colors.red),
                child: const Text("Parar Beacon Scan"),
              ),
          ],
        ),
      ),
    );
  }
}