import 'dart:async'; import 'dart:io'; import 'package:flutter/material.dart'; import 'common.dart'; //import 'file_manager.dart'; import 'package:path_provider/path_provider.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:intl/date_symbol_data_local.dart'; import 'package:fluttertoast/fluttertoast.dart'; import 'package:flutter/services.dart'; import '../main.dart'; checkPermission() { WidgetsFlutterBinding.ensureInitialized(); initializeDateFormatting("zh_CN", null).then((value) async{ bool ret = await getPermission(); if (ret) { getSDCardDir().then((value) { //runApp(MyApp()); runApp(MaterialApp( //title: '启动图demo', debugShowCheckedModeBanner: false, theme: new ThemeData( brightness: Brightness.light, backgroundColor: Colors.white, platform: TargetPlatform.android), home: new SplashScreen(), routes: { '/home': (BuildContext context) => MyApp() }, )); }); } else { Fluttertoast.showToast(msg: '用户未授权,程序无法正常运行!', gravity: ToastGravity.CENTER); SystemChannels.platform.invokeMethod('SystemNavigator.pop'); } }); } // Permission check,适用于 permission_handler: ^5.x.x Future getPermission() async { if (Platform.isAndroid) { // You can request multiple permissions at once. Map permissionStatuses = await [ Permission.storage, Permission.camera, Permission.microphone, ].request(); if (permissionStatuses[Permission.storage] != PermissionStatus.granted || permissionStatuses[Permission.camera] != PermissionStatus.granted || permissionStatuses[Permission.microphone] != PermissionStatus.granted) { return false; } } else if (Platform.isIOS) {} return true; } // Permission check,适用于 permission_handler: ^3.3.0 // Future getPermission() async { // List permissionGroupList = [ // PermissionGroup.storage, // PermissionGroup.camera, // PermissionGroup.microphone, // ]; // if (Platform.isAndroid) { // PermissionStatus permission = await PermissionHandler().checkPermissionStatus(PermissionGroup.storage); // if (permission != PermissionStatus.granted) { // await PermissionHandler().requestPermissions(permissionGroupList); // } // permission = await PermissionHandler().checkPermissionStatus(PermissionGroup.storage); // if (permission != PermissionStatus.granted) { // return false; // } // } else if (Platform.isIOS) {} // return true; // } Future getSDCardDir() async { Common().sDCardDir = (await getExternalStorageDirectory()).path; }