Πώς να λάβετε πληροφορίες συσκευής – Fluter

3
Πώς να λάβετε πληροφορίες συσκευής – Fluter

Μια εφαρμογή δεν πρέπει να περιορίζεται σε μία μόνο συσκευή, θα πρέπει να λειτουργεί σε όλες τις συσκευές, κάτι που θα πρέπει να είναι η πρώτη προτεραιότητα για κάθε προγραμματιστή. Μερικές φορές είναι απίθανο η εφαρμογή μας πιθανώς να μην λειτουργεί σε ορισμένες συσκευές, οπότε είναι καλύτερο να συλλέγουμε πληροφορίες συσκευής. Για να μπορούν οι προγραμματιστές να χρησιμοποιούν αυτήν την αναφορά καταγραφής για να παρακολουθούν και να διορθώνουν απλώς σφάλματα.

Σε αυτό το σεμινάριο, θα μάθουμε πώς να λαμβάνουμε πληροφορίες συσκευής χρησιμοποιώντας το πιο όμορφο πακέτο που ονομάζεται συσκευή_πληροφορίες_συν διαθέσιμο σε παμπ λάβετε.

Σχετικά με το device_info_plus

Μπορούμε να λάβουμε τρέχουσες πληροφορίες συσκευής μέσα από την εφαρμογή Flutter χρησιμοποιώντας το συσκευή_πληροφορίες_συν πακέτο. Το οποίο υποστηρίζει όλα τα είδη πλατφορμών, συμπεριλαμβανομένων των Android, iOS, macOS, web, Linux και Windows.

Προσθήκη εξάρτησης

Πρέπει να προσθέσουμε αυτό το πακέτο στο pubspec.yaml και να εκτελέσουμε την εντολή pub get για να το μεταφέρουμε στο flutter project μας.

dependencies:
  device_info_plus: ^3.2.0

Πακέτο εισαγωγής

Αφού εγκατασταθεί το πακέτο στο έργο μας flutter, μπορούμε να χρησιμοποιήσουμε τις κλάσεις και τις συναρτήσεις εισάγοντάς το.

import 'package:device_info_plus/device_info_plus.dart';

Δημιουργήστε ένα DeviceInfoPlugin Παράδειγμα κλάσης

Η κλάση DeviceInfoPlugin είναι η βασική κλάση του πακέτου και περιέχει τις περισσότερες από τις μεθόδους, θα πρέπει να δημιουργήσουμε μια παρουσία της όπως φαίνεται παρακάτω.

//Instance of DeviceInfoPlugin 
 DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();

Λάβετε τις πληροφορίες συσκευής από μια συγκεκριμένη πλατφόρμα

Μπορούμε να αποκτήσουμε πρόσβαση στις πληροφορίες της συσκευής χρησιμοποιώντας τη μέθοδο σεβαστή πλατφόρμα αφού δημιουργήσουμε μια παρουσία της κλάσης DeviceInfoPlugin.

//Android
AndroidDeviceInfo androidDeviceInfo = await deviceInfo.androidInfo; 

//iOS
IosDeviceInfo iosDeviceInfo = await deviceInfo.iosInfo;

//Web
WebBrowserInfo webBrowserInfo = await deviceInfo.webBrowserInfo;

//Linux
LinuxDeviceInfo linuxDeviceInfo= await deviceInfo.linuxInfo; 

//macOs
MacOsDeviceInfo macOsDeviceInfo= await deviceInfo.macOsInfo;

//Windows
WindowsDeviceInfo windowsDeviceInfo= await deviceInfo.windowsInfo;

Εάν λάβουμε τις πληροφορίες της συσκευής Android, αυτή η προσθήκη λαμβάνει όλες τις πληροφορίες που δημιουργούνται από το ‚android.os.Build‘.

 AndroidDeviceInfo({
    required this.version,
    this.board,
    this.bootloader,
    this.brand,
    this.device,
    this.display,
    this.fingerprint,
    this.hardware,
    this.host,
    this.id,
    this.manufacturer,
    this.model,
    this.product,
    required List<String?> supported32BitAbis,
    required List<String?> supported64BitAbis,
    required List<String?> supportedAbis,
    this.tags,
    this.type,
    this.isPhysicalDevice,
    this.androidId,
    required List<String?> systemFeatures,
  })

Τώρα έχουμε μια ιδέα για το συσκευή_πληροφορίες_συν πακέτο. Δημιουργήστε ένα νέο έργο flutter και αντικαταστήστε τον παρακάτω κώδικα και εκτελέστε την εφαρμογή για να πάρετε περισσότερες ιδέες.

//How to get the device info in flutter applications - Flutterant.com
import 'dart:async';
import 'dart:io';
import 'package:device_info_plus/device_info_plus.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  runApp(const HomePage());
}

class HomePage extends StatefulWidget {
  const HomePage({Key? key}) : super(key: key);

  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  static final DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
  Map<String, dynamic> _deviceData = <String, dynamic>{};

  @override
  void initState() {
    super.initState();
    initPlatformState();
  }

  Future<void> initPlatformState() async {
    var deviceData = <String, dynamic>{};

    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;
    });
  }

  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
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text(
           Platform.isAndroid
                ? 'Android Device Info'
                : Platform.isIOS
                ? '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(),
        ),
      ),
    );
  }
}
//How to get the device info in flutter applications - Flutterant.com

Μετά την επιτυχή εκτέλεση της εφαρμογής, θα λάβουμε την ακόλουθη έξοδο όπως φαίνεται στην παρακάτω εικόνα.

Πληροφορίες συσκευής

Για περισσότερες πληροφορίες σχετικά με συσκευή_πληροφορίες_συν Κάντε κλικ εδώ

Ευχαριστώ για την ανάγνωση… 🙂

Schreibe einen Kommentar