screen_on_flutter 0.1.8 copy "screen_on_flutter: ^0.1.8" to clipboard
screen_on_flutter: ^0.1.8 copied to clipboard

PlatformAndroid

A Flutter plugin that lets you show any Flutter widget automatically whenever the device screen turns on, similar to a lockscreen-style popup or greeting.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:screen_on_flutter/class/alarm_model.dart';
import 'package:screen_on_flutter/screen_on_flutter.dart';

final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  late final ScreenOnFlutter screenService;

  screenService = ScreenOnFlutter(
    routeCallback: (routeName) {
      debugPrint('App launched from: $routeName');
      if (routeName == "SCREEN_ON") {
        Future.microtask(() {
          navigatorKey.currentState?.pushReplacement(
            MaterialPageRoute(
              builder: (_) => LockScreen(service: screenService),
            ),
          );
        });
      }
    },
  );

  await screenService.startService(
    model: AlarmModel(content: "Start Service", title: "Screen_On_Flutter"),
  );
  await screenService.requestPermission();
  runApp(MyApp(service: screenService));
}

class MyApp extends StatelessWidget {
  final ScreenOnFlutter service;

  const MyApp({super.key, required this.service});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      navigatorKey: navigatorKey,
      home: HomeScreen(service: service),
    );
  }
}

class HomeScreen extends StatelessWidget {
  final ScreenOnFlutter service;

  const HomeScreen({super.key, required this.service});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Screen On Flutter Example')),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            service.endService();
          },
          child: const Text('Stop Service'),
        ),
      ),
    );
  }
}

class LockScreen extends StatelessWidget {
  final ScreenOnFlutter service;

  const LockScreen({super.key, required this.service});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            const Icon(Icons.sunny, color: Colors.orange, size: 80),
            const SizedBox(height: 20),
            const Text(
              'This Screen Flutter Widget',
              style: TextStyle(color: Colors.black, fontSize: 24),
            ),
            const SizedBox(height: 40),
            ElevatedButton(
              onPressed: () {
                service.moveToBack();
              },
              child: const Text('Close'),
            ),
          ],
        ),
      ),
    );
  }
}
2
likes
140
points
3
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin that lets you show any Flutter widget automatically whenever the device screen turns on, similar to a lockscreen-style popup or greeting.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on screen_on_flutter

Packages that implement screen_on_flutter