device_package_data 0.2.0+1
device_package_data: ^0.2.0+1 copied to clipboard
A Flutter plugin for getting the device and package data.
example/main.dart
import 'dart:async';
import 'package:device_package_data/src/device_package_data.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const DeviceDetailsApp());
}
class DeviceDetailsApp extends StatelessWidget {
const DeviceDetailsApp({super.key});
@override
Widget build(final BuildContext context) => MaterialApp(
title: 'Device Details',
theme: ThemeData(primarySwatch: Colors.blue),
home: const DeviceDetailsPage(),
);
}
class DeviceDetailsPage extends StatefulWidget {
const DeviceDetailsPage({super.key});
@override
State<DeviceDetailsPage> createState() => _DeviceDetailsPageState();
}
class _DeviceDetailsPageState extends State<DeviceDetailsPage> {
late Future<Map<String, String>> _deviceDetails;
final DevicePackageData _devicePackageData = DevicePackageData();
@override
void initState() {
super.initState();
unawaited(_getDeviceDetails());
}
Future<void> _getDeviceDetails() async {
setState(() {
_deviceDetails = fetchDeviceDetails();
});
}
Future<Map<String, String>> fetchDeviceDetails() async => <String, String>{
'Device Name': await _devicePackageData.getDeviceName(),
'Device Model': await _devicePackageData.getDeviceModel(),
'OS Name': await _devicePackageData.getOSName(),
'OS Version': await _devicePackageData.getOSVersion(),
'Package Name': await _devicePackageData.getPackageName(),
'App Version': await _devicePackageData.getAppVersion(),
'Device Manufacturer': await _devicePackageData.getDeviceManufacturer(),
'Screen Resolution':
(await _devicePackageData.getScreenResolution()).toString(),
'Screen Density':
(await _devicePackageData.getScreenDensity()).toString(),
'Device Language': await _devicePackageData.getDeviceLanguage(),
'Time Zone': await _devicePackageData.getTimeZone(),
'Battery Level':
(await _devicePackageData.getBatteryLevel()).toString(),
'Battery Status': await _devicePackageData.getBatteryStatus(),
'Total RAM': (await _devicePackageData.getTotalRAM()).toString(),
'Available RAM':
(await _devicePackageData.getAvailableRAM()).toString(),
'Total Storage':
(await _devicePackageData.getTotalStorage()).toString(),
'Available Storage':
(await _devicePackageData.getAvailableStorage()).toString(),
'Device Identifier': await _devicePackageData.getDeviceIdentifier(),
'Network Operator': await _devicePackageData.getNetworkOperator(),
'Is WiFi Connected':
await _devicePackageData.isWifiConnected() ? 'Yes' : 'No',
'Is Cellular Connected':
await _devicePackageData.isCellularConnected() ? 'Yes' : 'No',
};
@override
Widget build(final BuildContext context) => Scaffold(
appBar: AppBar(title: const Text('Device Details')),
body: FutureBuilder<Map<String, String>>(
future: _deviceDetails,
builder: (
final BuildContext context,
final AsyncSnapshot<Map<String, String>> snapshot,
) {
if (snapshot.connectionState == ConnectionState.waiting) {
return const Center(child: CircularProgressIndicator());
}
if (snapshot.hasError) {
return Center(child: Text('Error: ${snapshot.error}'));
}
final Map<String, String>? details = snapshot.data;
return ListView(
children: details!.entries
.map(
(final MapEntry<String, String> entry) => ListTile(
title: Text(entry.key),
subtitle: Text(entry.value),
),
)
.toList(),
);
},
),
);
}