检查 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();
}
我尝试比较 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();
}