[Flutter] 端末情報の取得(Android)

「Flutter 端末情報」で検索するとdevice_info_plusパッケージがヒットすると思います。

上記の公式サイトには使い方などのサンプルがあって通常利用はできますが、具体的にどんなデータが入っているのかは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_x86SM6375
bootloaderブートローダーのバージョン番号unknownunknown
brandキャリア・メーカー名googleDOCOMO
deviceデバイス名generic_x86_armSH-51C
displayユーザー表示用のビルドIDRSR1.201013.00138JP_2_280
fingerprintビルドの識別番号google/sdk_gphone_x86/generic_x86_arm:11/RSR1.201013.001/6903271:user/release-keysDOCOMO/SH-51C/SH-51C:13/TKQ1.220915.002/38JP_2_280:user/release-keys
hardwareハードウェア名ranchuqcom
hostホスト名abfarm-us-west1-c-0089cm-build-53-192
id変更番号RSR1.201013.001TKQ1.220915.002
manufacturer製造者名GoogleSHARP
modelモデルsdk_gphone_x86SH-51C
product製品名sdk_gphone_x86SH-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-keysrelease-keys
typeビルドタイプuseruser
isPhysicalDevice実機か否かfalsetrue
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(有効なら)ハードウェアのシリアルナンバーunknownunknown
versionOSのバージョン
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を使っているとそれらの情報も自動的に連携されますが、別途、上記の情報を取得しておけばユーザーからの不具合問い合わせでこれらの情報から対応できたりするかもしれません。

そのさいにどういった情報が取得できるのか、そこから何をどう判断できるのか。そんなことの参考にしてもらえたらと思います。