Flutter开发中如何获取安卓设备的设备名称
安卓端获取系统自定义设备名称实现方案
你此前使用的device_info包仅返回设备硬件出厂标识,无法读取用户在系统设置中修改的自定义设备名称,可根据开发场景选择以下实现方案:
原生安卓开发实现
- 直接调用系统API读取
Settings.Global.DEVICE_NAME字段即可,读不到时兜底返回出厂型号:
// Kotlin实现 fun getCustomDeviceName(): String { val name = Settings.Global.getString(contentResolver, Settings.Global.DEVICE_NAME) return name ?: Build.MODEL }
// Java实现 public String getCustomDeviceName() { String name = Settings.Global.getString(getContentResolver(), Settings.Global.DEVICE_NAME); return name != null ? name : Build.MODEL; }
Flutter跨平台开发实现
- 改用官方维护的
device_info_plus包,该包已封装了自定义设备名称的读取逻辑:
- 在
pubspec.yaml中添加依赖:
dependencies: device_info_plus: ^9.1.2
- 调用对应方法获取:
import 'package:device_info_plus/device_info_plus.dart'; Future<String> getAndroidDeviceName() async { AndroidDeviceInfo androidInfo = await DeviceInfoPlugin().androidInfo; // 此处的device字段即为系统设置中显示的自定义设备名称 return androidInfo.device ?? androidInfo.model; }
注意事项
- 安卓12及以上系统无需额外权限即可读取该字段,低版本系统如果出现读取失败的情况,可在
AndroidManifest.xml中添加android.permission.READ_DEVICE_CONFIG权限 - 部分国内定制ROM如果限制了应用的设备信息读取权限,会出现读不到自定义名称的情况,此时兜底返回出厂型号即可保证业务可用
- 若用户未修改过默认设备名称,读取到的结果和出厂型号一致
内容的提问来源于stack exchange,提问作者Samuel Juliano
相关产品推荐
相关产品推荐

