「Flutter 端末情報」で検索するとdevice_info_plusパッケージがヒットすると思います。
device_info_plus | Flutter Package
Flutter plugin providing detailed information about the device (make, model, etc.), and Android or iOS version the app is running on.
上記の公式サイトには使い方などのサンプルがあって通常利用はできますが、具体的にどんなデータが入っているのかはExampleやAPI referenceを見ても少ししか分からなかったので調べてみました。
以下のコードをエミュレーターと実機(AQUOS wish2)で実行した結果を表にまとめてみました。
import 'package:device_info_plus/device_info_plus.dart';
AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
print(androidInfo.board);
print(androidInfo.bootloader);
print(androidInfo.brand);
print(androidInfo.device);
print(androidInfo.display);
print(androidInfo.fingerprint);
print(androidInfo.hardware);
print(androidInfo.host);
print(androidInfo.id);
print(androidInfo.manufacturer);
print(androidInfo.model);
print(androidInfo.product);
print(androidInfo.supported32BitAbis);
print(androidInfo.supported64BitAbis);
print(androidInfo.supportedAbis);
print(androidInfo.tags);
print(androidInfo.type);
print(androidInfo.isPhysicalDevice);
print(androidInfo.systemFeatures);
print(androidInfo.displayMetrics);
print(androidInfo.serialNumber);
プロパティ | 説明 | エミュレーター (Android 11) | AQUOS wish2 (Android 13) |
---|---|---|---|
board | 基盤の名称 | goldfish_x86 | SM6375 |
bootloader | ブートローダーのバージョン番号 | unknown | unknown |
brand | キャリア・メーカー名 | DOCOMO | |
device | デバイス名 | generic_x86_arm | SH-51C |
display | ユーザー表示用のビルドID | RSR1.201013.001 | 38JP_2_280 |
fingerprint | ビルドの識別番号 | google/sdk_gphone_x86/generic_x86_arm:11/RSR1.201013.001/6903271:user/release-keys | DOCOMO/SH-51C/SH-51C:13/TKQ1.220915.002/38JP_2_280:user/release-keys |
hardware | ハードウェア名 | ranchu | qcom |
host | ホスト名 | abfarm-us-west1-c-0089 | cm-build-53-192 |
id | 変更番号 | RSR1.201013.001 | TKQ1.220915.002 |
manufacturer | 製造者名 | SHARP | |
model | モデル | sdk_gphone_x86 | SH-51C |
product | 製品名 | sdk_gphone_x86 | SH-51C |
supported32BitAbis | デバイスでサポートしている32ビットABIの順序付きリスト (ABI=サポートしているCPU命令セット) | [x86, armeabi-v7a, armeabi] | [armeabi-v7a, armeabi] |
supported64BitAbis | デバイスでサポートしている64ビットABIの順序付きリスト | [] | [arm64-v8a] |
supportedAbis | デバイスでサポートしているABIの順序付きリスト | [x86, armeabi-v7a, armeabi] | [arm64-v8a, armeabi-v7a, armeabi] |
tags | ビルドのタグ名 | release-keys | release-keys |
type | ビルドタイプ | user | user |
isPhysicalDevice | 実機か否か | false | true |
systemFeatures | デバイスで使用できる機能のリスト android.hardware.fingerprintがあれば指紋認証機能を持っている、という意味のようです | [android.hardware.sensor.proximity, android.software.adoptable_storage, : android.hardware.sensor.ambient_temperature, android.software.home_screen, android.hardware. | [android.hardware.sensor.proximity, android.software.dream_overlay, : android.software.vulkan.deqp.level, android.software.cant_save_state, android.softwa |
displayMetrics | ディスプレイに関する情報 | {AndroidDisplayMetrics} widthPx = 1080.0 heightPx = 2280.0 xDpi = 440.0 yDpi = 440.0 | {AndroidDisplayMetrics} widthPx = 720.0 heightPx = 1520.0 xDpi = 294.9670104980469 yDpi = 294.7170104980469 |
serialNumber | (有効なら)ハードウェアのシリアルナンバー | unknown | unknown |
version | OSのバージョン releaseがAndroidのバージョン | baseOS = “” codename = “REL” incremental = “6903271” previewSdkInt = 0 release = “11” sdkInt = 30 securityPatch = “2020-09-05” | baseOS = “” codename = “REL” incremental = “38JP_2_280” previewSdkInt = 0 release = “13” sdkInt = 33 securityPatch = “2023-06-01” |
だいたいのアプリで使えそうな項目はbrand、manufacturer、model、version.release、version.sdkInt、isPhysicalDevice、displayMetricsあたりでしょうか。
FirebaseSDKを使っているとそれらの情報も自動的に連携されますが、別途、上記の情報を取得しておけばユーザーからの不具合問い合わせでこれらの情報から対応できたりするかもしれません。
そのさいにどういった情報が取得できるのか、そこから何をどう判断できるのか。そんなことの参考にしてもらえたらと思います。