獲取設備信息 -flutter

import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:device_info/device_info.dart'; class DevInformation extends StatefulWidget { @override _DevInformationState createState() => _DevInformationState(); } class _DevInformationState extends State<DevInformation> { static final DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin(); Map<String, dynamic> _deviceData = <String, dynamic>{ }; Map<String, dynamic> _readAndroidBuildData(AndroidDeviceInfo build) { return <String, dynamic>{ 'version.securityPatch': build.version.securityPatch, 'version.sdkInt': build.version.sdkInt, 'version.release': build.version.release, 'version.previewSdkInt': build.version.previewSdkInt, 'version.incremental': build.version.incremental, 'version.codename': build.version.codename, 'version.baseOS': build.version.baseOS, 'board': build.board, 'bootloader': build.bootloader, 'brand': build.brand, 'device': build.device, 'display': build.display, 'fingerprint': build.fingerprint, 'hardware': build.hardware, 'host': build.host, 'id': build.id, 'manufacturer': build.manufacturer, 'model': build.model, 'product': build.product, 'supported32BitAbis': build.supported32BitAbis, 'supported64BitAbis': build.supported64BitAbis, 'supportedAbis': build.supportedAbis, 'tags': build.tags, 'type': build.type, 'isPhysicalDevice': build.isPhysicalDevice, 'androidId': build.androidId, 'systemFeatures': build.systemFeatures, }; } Map<String, dynamic> _readIosDeviceInfo(IosDeviceInfo data) { return <String, dynamic>{ 'name': data.name, 'systemName': data.systemName, 'systemVersion': data.systemVersion, 'model': data.model, 'localizedModel': data.localizedModel, 'identifierForVendor': data.identifierForVendor, 'isPhysicalDevice': data.isPhysicalDevice, 'utsname.sysname:': data.utsname.sysname, 'utsname.nodename:': data.utsname.nodename, 'utsname.release:': data.utsname.release, 'utsname.version:': data.utsname.version, 'utsname.machine:': data.utsname.machine, }; } @override void initState() { // TODO: implement initState super.initState(); initPlatformState(); } Future<void> initPlatformState() async { Map<String, dynamic> deviceData; try { if (Platform.isAndroid) { deviceData = _readAndroidBuildData(await deviceInfoPlugin.androidInfo); } else if (Platform.isIOS) { deviceData = _readIosDeviceInfo(await deviceInfoPlugin.iosInfo); } } on PlatformException { deviceData = <String, dynamic>{ 'Error:': 'Failed to get platform version.' }; } if (!mounted) return; setState(() { _deviceData = deviceData; }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text( Platform.isAndroid ? 'Android Device Info' : 'iOS Device Info'), ), body: ListView( children: _deviceData.keys.map((String property) { return Row( children: <Widget>[ Container( padding: const EdgeInsets.all(10.0), child: Text( property, style: const TextStyle( fontWeight: FontWeight.bold, ), ), ), Expanded( child: Container( padding: const EdgeInsets.fromLTRB(0.0, 10.0, 0.0, 10.0), child: Text( '${_deviceData[property]}', maxLines: 10, overflow: TextOverflow.ellipsis, ), )), ], ); }).toList(), ), ); } }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章