我想将手机中的IMEI号码与我声明的数据进行比较,但错误说:'运营商==不能应用于'java.lang.String','long' 我该如何解决这个问题?
MainActivity.java
public class MainActivity extends AppCompatActivity {
TelephonyManager manager;
private Button button;
TextView textView;
String IMEI;
long IMEI2 = 356261058647361;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.next);
textView = (TextView)findViewById(R.id.textview1);
manager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
IMEI = manager.getDeviceId();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if(IMEI == IMEI2){
textView.setText("IMEI NUMBER : " + IMEI);
}else{
textView.setText("data IMEI and IMEI2 did not match");
}
}
});
}
}
答案 0 :(得分:3)
试试这个
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if(IMEI2.equals(""+IMEI){
textView.setText("IMEI NUMBER : " + IMEI);
}else{
textView.setText("data IMEI and IMEI2 did not match");
}
}
});
答案 1 :(得分:3)
if(IMEI.equals(String.valueOf(IMEI2)){
textView.setText("IMEI NUMBER : " + IMEI);
}else{
textView.setText("data IMEI and IMEI2 did not match");
}
答案 2 :(得分:3)
使用数据类型长而不是长。在启动长/长数据类型时始终在值的末尾使用L
并使用equals
Long IMEI;
Long IMEI2 = 356261058647361L;
IMEI = Long.valueOf(manager.getDeviceId());
if (IMEI2.equals(IMEI)) {
textView.setText("IMEI NUMBER : " + IMEI);
} else {
textView.setText("data IMEI and IMEI2 did not match");
}
答案 3 :(得分:2)
在java中,您需要声明long IMEI2 = 356261058647361L;
您需要添加' L ' 。参考:Long type
Long.parseLong()
Long.parseLong()
静态方法将字符串参数解析为a signed decimal long并返回一个long值。
使用:
Long.parseLong(IMEI);
在if条件之前使用这种方式:long tmp = Long.parseLong(IMEI);
。
然后在if:
if (tmp == IMEI2)