search
LoginSignup
3

posted at

[Flutter] 端末の情報を取得する方法

今回は、端末の情報を取得してテキストの表示する方法をご紹介します。

使うパッケージはこちら

このパッケージですが、下のパッケージの少し上位互換です。(私の感想です。)

では、実装していくうぅぅ

①apple_product_nameを入れる

使いたいプロジェクト内のターミナルにコマンドを打ちます。

flutter pub add apple_product_name

注意)pubspec.yamlに直接記入してもOK!

コマンドを入力すると、pubspec.yamlも追加されます。

dependencies:
  apple_product_name: 

次に、pub getをしましよう。

②実際に使ってみよう

とりあえず、必要そうな情報を並べたサンプルアプリを作ってみました。

import 'package:apple_product_name/apple_product_name.dart';
import 'package:device_info_plus/device_info_plus.dart';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: const HomeScreen(),
    );
  }
}

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

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

class _HomeScreenState extends State<HomeScreen> {
  String infoName = '';
  String infoModel = '';
  String infoSystemName = '';
  String infoSystemVersion = '';
  String infoMachine = '';

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

  void checkAppProductName() async {
    final info = await DeviceInfoPlugin().iosInfo;
    var infoMachines = AppleProductName().lookup(info.utsname.machine!);
    setState(() {
      infoName = info.name!;
      infoModel = info.model!;
      infoSystemName = info.systemName!;
      infoSystemVersion = info.systemVersion!;
      infoMachine = infoMachines;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Column(
        mainAxisAlignment: MainAxisAlignment.spaceAround,
        children: [
          Text(infoName),
          Text(infoModel),
          Text(infoSystemName),
          Text(infoSystemVersion),
          Text(infoMachine),
        ],
      ),
    );
  }
}

画面がこんな感じです。

Simulator Screen Shot - iPhone 8 Plus - 2022-01-31 at 13.35.54.png

③説明

ゆっくり説明していきます。
私の解釈で説明していくので、間違っていたら指摘してもらえると、勉強になります。

まず初めに、使えるようにするために、定義づけをします。
俗に言う、インスタンス化します。

final info = await DeviceInfoPlugin().iosInfo;

これより、使えるようになります。

//名前  → 「iPhone 8」とか自分でつけた名前など
info.name!
//iOSかAndroidの判断
info.model!
//端末 → 「iPhone」とか
info.systemName!
//システムバージョン -> iOS 15.1とか
info.systemVersion!

一つだけ、癖があるものがあります。それを使えるようにするために、apple_product_nameを使います。


//「iPhone10,1」 とかよくわからないものが出てくる。 → これを変換する必要がある。
info.utsname.machine!


//機種名 → 「iPhone 8」とか自分の端末の名前になる。
AppleProductName().lookup(info.utsname.machine!)

開発する上で、役に立てればいいなと!!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
3