Androidは携帯電話の唯一の標識を取得(IMEIのみ)


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    ")
        }
    }
}