Flutter屏幕管理插件awareframework_screen的使用

Flutter屏幕管理插件awareframework_screen的使用

Aware Screen

Build Status

屏幕传感器用于监控屏幕状态,例如打开和关闭、锁定和解锁。

安装插件到项目

  1. 编辑 pubspec.yaml
dependencies:
    awareframework_screen
  1. 在源代码中导入包
import 'package:awareframework_screen/awareframework_screen.dart';
import 'package:awareframework_core/awareframework_core.dart';

公共函数

屏幕传感器

  • start()
  • stop()
  • sync(bool force)
  • enable()
  • disable()
  • isEnable()
  • setLabel(String label)

配置键

  • period: Float: 数据保存的周期(以分钟为单位,默认值为1)
  • threshold: Double: 如果设置,则不记录连续点,如果变化值小于设定值。
  • enabled: Boolean: 是否启用传感器。(默认值为false)
  • debug: Boolean: 是否启用日志记录到Logcat。(默认值为false)
  • label: String: 数据的标签。(默认为空字符串)
  • deviceId: String: 将与事件和传感器关联的设备ID。(默认为空字符串)
  • dbEncryptionKey: 数据库加密密钥。(默认为null)
  • dbType: Engine: 使用哪种数据库引擎保存数据。(默认为0)(0 = 无,1 = Room或Realm)
  • dbPath: String: 数据库路径。(默认为"aware_accelerometer")
  • dbHost: String: 数据库同步的主机。(默认为null)

数据表示

数据在Android和iOS上的表示方式不同。以下链接提供了更多信息。

示例用法

// 初始化配置
var config = ScreenSensorConfig()
  ..debug = true
  ..label = "label";

// 初始化传感器
var sensor = new ScreenSensor.init(config);

void method(){
    /// 开始
    sensor.start();
    
    /// 设置观察者
    sensor.onDataChanged.listen((ScreenData result){
      setState(() {
        // Your code here
      });
    });
    
    /// 停止
    sensor.stop();
    
    /// 同步
    sensor.sync(true);  

    // 创建一个传感器卡片
    var card = new ScreenCard(sensor:sensor);
    // NEXT: 将card实例添加到目标Widget中。
}

许可证

版权所有 © 2018 AWARE Mobile Context Instrumentation Middleware/Framework (http://www.awareframework.com)

根据Apache许可证2.0版(“许可证”)授权;除非符合许可证,否则您不得使用此文件。您可以从以下地址获取许可证副本:

http://www.apache.org/licenses/LICENSE-2.0

除非法律要求或书面同意,否则根据许可证分发的软件是在"按原样"的基础上分发的,不附带任何明示或暗示的保证或条件。有关许可证下具体语言的许可和限制,请参阅许可证。


示例代码

example/lib/main.dart

import 'package:flutter/material.dart';

import 'package:awareframework_screen/awareframework_screen.dart';

void main() => runApp(new MyApp());

class MyApp extends StatefulWidget {
  [@override](/user/override)
  _MyAppState createState() => new _MyAppState();
}

class _MyAppState extends State<MyApp> {
  ScreenSensor? sensor;
  ScreenSensorConfig? config;

  [@override](/user/override)
  void initState() {
    super.initState();

    // 初始化配置
    config = ScreenSensorConfig()..debug = true;

    // 初始化传感器
    sensor = new ScreenSensor.init(config!);

    // 开始监听屏幕状态
    sensor?.start();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return new MaterialApp(
      home: new Scaffold(
          appBar: new AppBar(
            title: const Text('Plugin Example App'),
          ),
          body: Card()),
    );
  }
}

更多关于Flutter屏幕管理插件awareframework_screen的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter屏幕管理插件awareframework_screen的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


awareframework_screen 是一个用于 Flutter 应用的插件,它允许开发者通过 Aware Framework 来管理和监控设备的屏幕状态。Aware Framework 是一个开源框架,用于收集设备的传感器数据和上下文信息。awareframework_screen 插件可以帮助你监控设备的屏幕开启和关闭状态,以及屏幕亮度的变化。

以下是使用 awareframework_screen 插件的基本步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 awareframework_screen 插件的依赖:

dependencies:
  awareframework_screen: ^0.1.0

然后运行 flutter pub get 来安装依赖。

2. 初始化插件

在你的 Flutter 应用中,你需要初始化 awareframework_screen 插件。通常,你可以在 main.dart 文件中进行初始化:

import 'package:awareframework_screen/awareframework_screen.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // 初始化 Screen 插件
    AwareFrameworkScreen().init(
      config: ScreenConfig(
        enabled: true,
        debug: true,
      ),
    );

    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

3. 监控屏幕状态

你可以通过 AwareFrameworkScreen 类来监控屏幕的开启和关闭状态。你可以使用 onScreenOnonScreenOff 回调来监听屏幕状态的变化:

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

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  String _screenStatus = "Unknown";

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

    // 监听屏幕开启事件
    AwareFrameworkScreen().onScreenOn.listen((event) {
      setState(() {
        _screenStatus = "Screen On";
      });
    });

    // 监听屏幕关闭事件
    AwareFrameworkScreen().onScreenOff.listen((event) {
      setState(() {
        _screenStatus = "Screen Off";
      });
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Screen Status'),
      ),
      body: Center(
        child: Text(
          'Screen Status: $_screenStatus',
          style: TextStyle(fontSize: 24),
        ),
      ),
    );
  }
}

4. 监控屏幕亮度变化

你还可以通过 onBrightnessChanged 回调来监听屏幕亮度的变化:

AwareFrameworkScreen().onBrightnessChanged.listen((event) {
  setState(() {
    _screenStatus = "Brightness Changed to ${event.brightness}";
  });
});

5. 控制屏幕状态

你可以使用 AwareFrameworkScreen 类来控制屏幕的状态,例如打开或关闭屏幕:

// 打开屏幕
AwareFrameworkScreen().turnOn();

// 关闭屏幕
AwareFrameworkScreen().turnOff();

6. 停止监控

当你不再需要监控屏幕状态时,可以调用 stop 方法来停止监控:

AwareFrameworkScreen().stop();
回到顶部