rav*_*vi 15 java android telephonymanager android-8.0-oreo
我正在获取IMEI和设备ID,所以我在这里得到一个问题getDeviceId()已被弃用.
TelephonyManager tm = (TelephonyManager)
getSystemService(this.TELEPHONY_SERVICE);
imei = tm.getDeviceId();
device = Settings.Secure.getString(this.getContentResolver(),
Settings.Secure.ANDROID_ID);
Run Code Online (Sandbox Code Playgroud)
Nil*_*hod 20
getDeviceId()
返回订阅的唯一设备ID,例如,GSM的IMEI和CDMA电话的MEID.如果设备ID不可用,则返回null.
此方法在API级别26中已弃用.
使用
(@link getImei}该方法返回IMEI的GSM或
(@link getMeid}返回MEID对CDMA.
有关更多信息,请阅读TelephonyManager
试试这个来获取IMEI
@RequiresApi(api = Build.VERSION_CODES.O)
TelephonyManager tm = (TelephonyManager)
getSystemService(this.TELEPHONY_SERVICE);
String imei = tm.getImei();
Run Code Online (Sandbox Code Playgroud)
要么
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
String imei = telephonyMgr.getImei();
} else {
String imei = telephonyMgr.getDeviceId();
}
Run Code Online (Sandbox Code Playgroud)
试试这个
MEID
@RequiresApi(api = Build.VERSION_CODES.O)
TelephonyManager tm = (TelephonyManager)
getSystemService(this.TELEPHONY_SERVICE);
String meid=tm.getMeid();
Run Code Online (Sandbox Code Playgroud)
要么
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
String meid=tm.getMeid();
}
Run Code Online (Sandbox Code Playgroud)
编辑:从 Android 10 开始,除非您拥有 READ_PRIVILEGED_PHONE_STATE 权限,否则您无法请求 IMEI 和 MEID
不应该是这样的吗?
if (Build.VERSION.SDK_INT >= 26) {
if (telMgr.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA) {
deviceId = telMgr.getMeid();
} else if (telMgr.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM) {
deviceId = telMgr.getImei();
} else {
deviceId = ""; // default!!!
}
} else {
deviceId = telMgr.getDeviceId();
}
Run Code Online (Sandbox Code Playgroud)
这是我的解决方案:
@SuppressWarnings("deprecation")
private String getIMEINumber() {
String IMEINumber = "";
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
TelephonyManager telephonyMgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
IMEINumber = telephonyMgr.getImei();
} else {
IMEINumber = telephonyMgr.getDeviceId();
}
}
return IMEINumber;
}
Run Code Online (Sandbox Code Playgroud)