【问题标题】:How to detect device model? [duplicate]如何检测设备型号? [复制]
【发布时间】:2014-02-15 15:37:52
【问题描述】:

我正在尝试检测设备型号并尝试基于此进行一些操作。

我编写代码来检测设备型号和制造商,但由于某种原因它给了我一个否定的结果。

这是检测设备型号和制造商的代码:

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 循环,而是转到 else。

如果我在这里做错了什么,谁能告诉我。我会很感激的。

提前谢谢..:)

【问题讨论】:

    标签: android boolean android-build


    【解决方案1】:

    这样做

    if(MyBuildModel.equals(HTCModel)) {
       // your code
    }
    

    == 运算符比较两个字符串的引用,在你的情况下是不同的。

    在 Java 中,要比较字符串,您必须为此使用 equals() 方法。

    【讨论】:

    • 很高兴为您提供帮助,您现在可以接受了
    • 希望我能接受你的两个答案..他们都是正确的..这就是我投票支持两者的原因。
    • 好的,你可以接受你最喜欢的。没问题
    • 我刚刚对你的回答投了赞成票以补偿接受。
    【解决方案2】:

    您必须使用String.equals() 来比较您的字符串,如下所示:

    if (MyBuildModel.equals(HTCModel)){
    

    否则,使用== 是在比较字符串的内存地址,这当然是不一样的。

    附带说明,变量名应以小写字母开头。

    【讨论】:

    • 谢谢你的信息.. :)
    • 乐于助人 ;) 请点击左侧的复选标记接受此答案。
    • 希望我能接受这两个答案..他们都是正确的..这就是我投票支持这两个答案的原因。
    猜你喜欢
    • 2016-11-04
    • 2014-09-23
    • 2012-09-18
    • 2021-11-09
    • 2016-09-29
    • 1970-01-01
    • 2014-04-01
    • 1970-01-01
    • 2014-05-01
    相关资源
    最近更新 更多