动我项目仓库 flutter:3.22 dart:3.4.4
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

63 lines
2.0 KiB

//各种封装的小函数
import 'dart:async';
import 'package:bruno/bruno.dart';
import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';
void toast(String msg, BuildContext context){
BrnToast.show(msg, context);
}
String formattedTime(int timestamp){
// 使用DateTime.fromMillisecondsSinceEpoch来创建DateTime对象
DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(timestamp, isUtc: false);
// 手动格式化日期和时间
String formattedDateTime = '${dateTime.year}-${dateTime.month.toString().padLeft(2, '0')}-${dateTime.day.toString().padLeft(2, '0')} ${dateTime.hour.toString().padLeft(2, '0')}:${dateTime.minute.toString().padLeft(2, '0')}:${dateTime.second.toString().padLeft(2, '0')}';
return formattedDateTime;
}
Future<bool> handlePermission(BuildContext context, String content, List<Permission> permissions) async {
var status = await permissions[0].status;
final Completer<bool> completer = Completer<bool>();
if (status.isDenied) {
// 无权限的话就显示设置页面
showDialog(
context: context,
builder: (BuildContext context) {
// 返回一个 AlertDialog 组件
return AlertDialog(
title: Text("提示"),
content: Text(content),
actions: <Widget>[
// 通常是按钮
TextButton(
child: Text("确认"),
onPressed: () async {
Map<Permission, PermissionStatus> statuses = await permissions.request();
Navigator.of(context).pop();
completer.complete(true);
},
),
// 通常是按钮
TextButton(
child: Text("取消"),
onPressed: () {
Navigator.of(context).pop();
completer.complete(false);
},
),
],
);
});
} else {
completer.complete(true);
}
return completer.future;
}