Flutter屏幕管理插件awareframework_screen的使用
Flutter屏幕管理插件awareframework_screen的使用
Aware Screen
屏幕传感器用于监控屏幕状态,例如打开和关闭、锁定和解锁。
安装插件到项目
- 编辑
pubspec.yaml
dependencies:
awareframework_screen
- 在源代码中导入包
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
更多关于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
类来监控屏幕的开启和关闭状态。你可以使用 onScreenOn
和 onScreenOff
回调来监听屏幕状态的变化:
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();