检查 IMEI 地址和字符串时出错

Error with check IMEI address and String

我尝试比较 IMEI 代码和字符串

public static String getDeviceIMEI(Context context) {
    if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
    }
    String identifier = null;
    TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
    if (tm != null)
        identifier = tm.getDeviceId();
    if (identifier == null || identifier.length() == 0)
        identifier = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);

    return identifier;
}

此方法计算设备的 IMEI 代码,它 return 带有代码的字符串。 并且此方法比较 2 个字符串:

private boolean checkIMEI() {        
    if (Device.getDeviceIMEI(SplashScreenActivity.this) == "xxx")
        return true;
    else
        return false;
}

("xxx" 是我设备的个人 IMEI 地址)

但是当我 运行 它在设备上时,方法 checkIMEI() return 对我来说是错误的... 我没有任何解决问题的想法。 感谢帮助

你正在使用 == 来比较 Java 中的字符串,它检查它是否是同一个对象,而不是相同的字符串,你可以使用 .equals() ,像这样:

private boolean checkIMEI() {        
    if (Device.getDeviceIMEI(SplashScreenActivity.this).equals("xxx"))
        return true;
    else
        return false;
}

How do I compare strings in Java?

public static String getIMEI(Context context) {
    TelephonyManager TelephonyMgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
    return TelephonyMgr.getDeviceId();
}