Android(安卓)获取手机唯一标识(仅限IMEI)
16lz
2021-12-04
Android 获取手机唯一标识(仅限IMEI)
1: 自行导入compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.4@aar' 权限的框架
https://github.com/tbruyelle/RxPermissions
直接代码(Koglin):
private fun getImeiNUmber() { RxPermissions(this).request(Manifest.permission.READ_PHONE_STATE).subscribe() { if (it) { val TelephonyMgr = getSystemService(TELEPHONY_SERVICE) as TelephonyManager if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {//28++(8.0) val IMEI1 = TelephonyMgr.getImei(0) val IMEI2 = TelephonyMgr.getImei(1) val MEID = TelephonyMgr.meid LogUtils.i("设备(28++(8.0))MEID: $IMEI1,$IMEI2,$MEID") } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {//23~27(6.0~7.0) val MEID = TelephonyMgr.getDeviceId() val IMEI1 = TelephonyMgr.getDeviceId(0) val IMEI2 = TelephonyMgr.getDeviceId(1) LogUtils.i("设备(23~27(6.0~7.0))IMEI1: $IMEI1,IMEI2: $IMEI2,MEID: $MEID") } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP_MR1) {//21~22(5.0) val method = TelephonyMgr.javaClass.getMethod("getDeviceId", Int::class.javaPrimitiveType) val meid = TelephonyMgr.getDeviceId() val imei1 = method.invoke(TelephonyMgr, 1) as String val imei2 = method.invoke(TelephonyMgr, 2) as String LogUtils.i("设备(21~22(5.0))->imei1:$imei1,imei2:$imei2,meid:$meid") } else {//21--(5.0以下) val DriverID = TelephonyMgr.getDeviceId() LogUtils.i("设备(21--(5.0以下))MEID: $DriverID") } } else { LogUtils.i("设备读取IMEI权限没有") } }}
更多相关文章
- 解决Could not find method android() for arguments问题
- Android存储权限
- android:screenOrientation的说明
- ANDROID获取设备ID、型号及其它信息
- 【Android游戏开发二十一】Android(安卓)os设备谎言分辨率的解决
- android的ORMLite的sqlite自定义框架
- eclipse导入的Android项目没有android.jar包并报错
- android横屏竖屏
- Android项目从eclipse迁移到Android(安卓)Studio