You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何处理获取设备IMEI号和手机号所需的两类手机权限

解决步骤

1. 补全AndroidManifest.xml权限声明

  • 你需要在项目android/app/src/main/AndroidManifest.xml的<manifest>标签下、<application>标签外,手动添加读手机状态权限的静态声明:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
  • 当前仅显示读取联系人权限,是因为mobile_number: ^1.0.4库默认附带了联系人权限声明,但device_information: ^0.0.4不会主动添加READ_PHONE_STATE权限,必须手动补全才会在系统权限列表展示对应选项。

2. 补充动态权限申请逻辑

  • 上述两个库都不会自动触发权限申请,你需要单独集成权限申请逻辑,推荐使用permission_handler库实现:
    • 先在pubspec.yaml添加依赖:permission_handler: ^10.2.0(可根据你的项目适配调整版本)
    • 调用获取手机号、IMEI的接口前,先申请对应权限,代码示例:
import 'package:permission_handler/permission_handler.dart';

Future<bool> checkPhonePermission() async {
  var status = await Permission.phone.request();
  return status.isGranted;
}
  • 注意:Android 10及以上系统即使获得READ_PHONE_STATE权限也无法获取IMEI,若你需要适配高版本系统,建议改用安卓官方推荐的其他唯一标识方案。

3. 验证配置生效

  • 配置完成后执行flutter clean清理项目缓存,再重新打包安装应用,即可在系统应用权限列表看到「读取手机状态和身份」选项。

内容的提问来源于stack exchange,提问作者test t

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 11:57:02