device_package_data 0.2.0+1 copy "device_package_data: ^0.2.0+1" to clipboard
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(),
            );
          },
        ),
      );
}
1
likes
145
points
0
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin for getting the device and package data.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on device_package_data

Packages that implement device_package_data