今回は、端末の情報を取得してテキストの表示する方法をご紹介します。
使うパッケージはこちら
このパッケージですが、下のパッケージの少し上位互換です。(私の感想です。)
では、実装していくうぅぅ
①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),
],
),
);
}
}
画面がこんな感じです。
③説明
ゆっくり説明していきます。
私の解釈で説明していくので、間違っていたら指摘してもらえると、勉強になります。
まず初めに、使えるようにするために、定義づけをします。
俗に言う、インスタンス化します。
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!)
開発する上で、役に立てればいいなと!!