什么是IMEI?
国际移动设备识别码(International Mobile Equipment Identity,IMEI),即通常所说的手机序列号、手机“串号”,用于在移动电话网络中识别每一部独立的手机等移动通信设备,相当于移动电话的身份证。序列号共有15~17位数字,前8位(TAC)是型号核准号码(早期为6位),是区分手机品牌和型号的编码。接着2位(FAC)是最后装配号(仅在早期机型中存在),代表最终装配地代码。后6位(SNR)是串号,代表生产顺序号。最后1位是检验码,备用。国际移动设备识别码一般贴于机身背面与外包装上,同时也存在于手机存储器中,通过输入*#06#即可查询。如图:

在软件开发中IMEI的用途有哪些?
因为IMEI的唯一性,那么实际软件开发中IMEI的用途就是为了保证手机绑定的账号唯一,比如只允许一个手机号登录该设备,OA开发签到里面,每个人手机imei都不一样,如果哪一天你迟到偷懒,让别人帮你打卡,数据库记录本次与上次不一致就会提示失败!总结常用功能如下两点(如有其他用途可留言,一起完善功能):
1:防止恶意刷数据:(安装,注册量,替别人打卡)
2:推送的标签
Android如何正确获取IMEI?
1.首先是需要添加权限:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
2.引入权限管理lib:(后期会扩展该功能说明)
compile 'pub.devrel:easypermissions:2.0.1'
3.启动页或者首页增加权限申请代码:
定义权限列表:private String[] permissions = {Manifest.permission.READ_PHONE_STATE};
权限获取方法:
//获取权限
private void getPermission() {
if (EasyPermissions.hasPermissions(this, permissions)) {
//已经打开权限
} else {
//没有打开相关权限、申请权限
EasyPermissions.requestPermissions(this, "需要获取您的XXXX使用权限,否则无法正常使用!", 1, permissions);
}
}
Activity 实现 EasyPermissions.PermissionCallbacks ,并复写方法:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
//框架要求必须这么写
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
}
//成功打开权限
@Override
public void onPermissionsGranted(int requestCode, @NonNull List<String> perms) {
}
//用户未同意权限
@Override
public void onPermissionsDenied(int requestCode, @NonNull List<String> perms) {
}
最后一步 在 Activity里面调用getPermission() 方法即可!
本文详细介绍了IMEI(国际移动设备识别码)的概念及其在手机中的作用,阐述了IMEI在软件开发中的两大核心用途:防止恶意刷数据和作为推送的标签,同时提供了在Android平台正确获取IMEI的方法。
3374

被折叠的 条评论
为什么被折叠?



