LoginSignup
4
3

More than 1 year has passed since last update.

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

Posted at

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

使うパッケージはこちら

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

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

①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!)

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

4
3
0

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
  3. You can use dark theme
What you can do with signing up
4
3