Android Studio中Android Device Info库build.androidId报错问题求助
Android Device Info库中build.androidId的问题处理
常见问题与对应解决方式
- 权限限制提示:Android 10(API 29)及以上版本中,普通应用无法通过常规权限获取有效androidId,系统会返回固定空值或随机值。若需设备标识,建议改用广告ID或自行生成本地唯一标识存储。
- 空安全提示:若提示字段可为空,直接添加空值兜底处理即可,避免潜在空指针异常。
修改后的代码示例
Map<String, dynamic> _readAndroidBuildData(AndroidDeviceInfo build) { return <String, dynamic>{ 'version.securityPatch': build.version.securityPatch, 'version.sdkInt': build.version.sdkInt, 'version.release': build.version.release, 'version.previewSdkInt': build.version.previewSdkInt, 'version.incremental': build.version.incremental, 'version.codename': build.version.codename, 'version.baseOS': build.version.baseOS, 'board': build.board, 'bootloader': build.bootloader, 'brand': build.brand, 'device': build.device, 'display': build.display, 'fingerprint': build.fingerprint, 'hardware': build.hardware, 'host': build.host, 'id': build.id, 'manufacturer': build.manufacturer, 'model': build.model, 'product': build.product, 'supported32BitAbis': build.supported32BitAbis, 'supported64BitAbis': build.supported64BitAbis, 'supportedAbis': build.supportedAbis, 'tags': build.tags, 'type': build.type, 'isPhysicalDevice': build.isPhysicalDevice, 'androidId': build.androidId ?? 'Unknown', // 空值兜底处理 'systemFeatures': build.systemFeatures, }; }
额外建议
如果你需要稳定的设备标识,不要依赖androidId:
- 使用广告ID:需集成对应库获取,用户可重置该ID
- 本地生成唯一ID:首次启动时生成UUID并存储到SharedPreferences或本地文件中,后续读取使用
内容的提问来源于stack exchange,提问作者Syed Danieal hafez
相关产品推荐
相关产品推荐

