device_info_csx 0.0.1 device_info_csx: ^0.0.1 copied to clipboard
Flutter plugin providing detailed information about the device (make, model, etc.), and Android or iOS version the app is running on.
/*
* @Author: Cao Shixin
* @Date: 2021-01-04 17:54:50
* @LastEditors: Cao Shixin
* @LastEditTime: 2021-01-04 18:33:17
* @Description:
*/
import 'dart:async';
import 'dart:io';
import 'package:device_info_csx/device_info_csx.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() {
runZonedGuarded(() {
runApp(MyApp());
}, (dynamic error, dynamic stack) {
print(error);
print(stack);
});
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
Map<String, dynamic> _deviceData = <String, dynamic>{};
@override
void initState() {
super.initState();
initPlatformState();
}
Future<void> initPlatformState() async {
Map<String, dynamic> deviceData = <String, dynamic>{};
try {
if (Platform.isAndroid) {
deviceData = (await DeviceInfoCsx.androidInfo()).toJson();
} else if (Platform.isIOS) {
deviceData = (await DeviceInfoCsx.iosInfo()).toJson();
}
} on PlatformException {
deviceData = <String, dynamic>{
'Error:': 'Failed to get platform version.'
};
}
if (!mounted) return;
setState(() {
_deviceData = deviceData;
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: 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(),
),
),
);
}
}