device_package_data 0.1.0+1 copy "device_package_data: ^0.1.0+1" to clipboard
device_package_data: ^0.1.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/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
150
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

device_package_data_platform_interface, flutter, plugin_platform_interface

More

Packages that depend on device_package_data

Packages that implement device_package_data