我正在尝试检测设备模型并尝试基于此进行一些操作。
我执行代码来检测设备型号和制造商但由于某种原因它给我一个负面结果。
以下是检测设备型号和制造商的代码:
private Boolean isHTCone(){
//For model and manufacturer both
String HTC_MODEL_MANUFACTURER = android.os.Build.MODEL+""+android.os.Build.MANUFACTURER;
//If true then do something
Boolean isHTC = true;
//My model name
String HTCModel = "HTC6500LVW";
//For device model
String MyBuildModel = android.os.Build.MODEL;
//For manufacturer
String MyBuildManufacturer = android.os.Build.MANUFACTURER;
//Check for the condition
if(MyBuildModel==HTCModel){
Log.i("Device Model is: ", android.os.Build.MODEL);
return true;
}
else{
Log.i("Device is not HTC One");
return false;
}
}
它总是给我一个错误的价值。即使我的设备型号是“HTC6500LVW”,它也不接受if循环而是去其他地方。
任何人都可以告诉我,如果我在这里做错了什么。我真的很感激。
提前致谢.. :))
答案 0 :(得分:4)
这样做
if(MyBuildModel.equals(HTCModel)) {
// your code
}
==运算符比较两个字符串的引用,在你的情况下是不同的。
在Java中,为了比较字符串,您必须使用equals()
方法。
答案 1 :(得分:3)
您必须使用String.equals()
来比较字符串,例如:
if (MyBuildModel.equals(HTCModel)){
否则,使用==
您正在比较字符串的内存地址,当然这些地址不同。
作为旁注,变量名称应以小写字母开头。