device_info_plus_harmonyos 0.0.1 copy "device_info_plus_harmonyos: ^0.0.1" to clipboard
device_info_plus_harmonyos: ^0.0.1 copied to clipboard

retracted

HarmonyOS implementation of the device_info_plus plugin.

example/lib/main.dart

import 'dart:async';

import 'package:device_info_plus_harmonyos/device_info_plus_harmonyos.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(
      home: Scaffold(
          appBar: AppBar(title: Text('HarmonyOS Device Info')),
          body: const MyApp())));
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  static final DeviceInfoPlusPlugin deviceInfoPlugin = DeviceInfoPlusPlugin();
  Map<String, dynamic> _deviceData = <String, dynamic>{};

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

  Future<void> initPlatformState() async {
    if (defaultTargetPlatform == TargetPlatform.ohos) {
      _deviceData = _readOhosDeviceInfo(await deviceInfoPlugin.ohosInfo);
      setState(() {});
    }
  }

  Map<String, dynamic> _readOhosDeviceInfo(OhosDeviceInfo data) {
    return <String, dynamic>{
      'deviceType': data.deviceType,
      'manufacture': data.manufacture,
      'brand': data.brand,
      'marketName': data.marketName,
      'productSeries': data.productSeries,
      'productModel': data.productModel,
      'softwareModel': data.softwareModel,
      'hardwareModel': data.hardwareModel,
      'hardwareProfile': data.hardwareProfile,
      'bootloaderVersion': data.bootloaderVersion,
      'abiList': data.abiList,
      'securityPatchTag': data.securityPatchTag,
      'displayVersion': data.displayVersion,
      'incrementalVersion': data.incrementalVersion,
      'osReleaseType': data.osReleaseType,
      'osFullName': data.osFullName,
      'majorVersion': data.majorVersion,
      'seniorVersion': data.seniorVersion,
      'featureVersion': data.featureVersion,
      'buildVersion': data.buildVersion,
      'sdkApiVersion': data.sdkApiVersion,
      'firstApiVersion': data.firstApiVersion,
      'versionId': data.versionId,
      'buildType': data.buildType,
      'buildUser': data.buildUser,
      'buildHost': data.buildHost,
      'buildTime': data.buildTime,
      'buildRootHash': data.buildRootHash,
      'distributionOSName': data.distributionOSName,
      'distributionOSVersion': data.distributionOSVersion,
      'distributionOSApiVersion': data.distributionOSApiVersion,
      'distributionOSReleaseType': data.distributionOSReleaseType,
      'ODID': data.odID,
    };
  }

  @override
  Widget build(BuildContext context) {
    return ListView(
      children: _deviceData.entries.map((entry) {
        return Padding(
          padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
          child: Row(spacing: 10, children: [
            Text('${entry.key}: ',
                style: const TextStyle(fontWeight: FontWeight.bold)),
            Expanded(
                child: Text('${entry.value ?? 'N/A'}',
                    maxLines: 10, overflow: TextOverflow.ellipsis))
          ]),
        );
      }).toList(),
    );
  }

}