我正在构建一个从规范编号(vb#8888)读取最后一个短信的应用程序。代码工作得很好。我只有一个问题。当我从其他号码(vb#7777)获得新的短信时,我的代码停止从(v#8888)读取短信。如果我从(7777)删除新的短信比我的代码策略再次工作。我正在使用它来更新我的应用程序中的字符串。有人可以帮助我
这是我的代码
Uri mSmsinboxQueryUri = Uri.parse("content://sms/inbox");
Cursor cursor1 = getContentResolver().query(mSmsinboxQueryUri, null, null, null, null);
String[] columns = new String[]{"address", "body"};
if(cursor1.moveToFirst()) {
String address = cursor1.getString(cursor1.getColumnIndex(columns[0]));
if address.equalsIgnoreCase("+597*******")) {
body = cursor1.getString(cursor1.getColumnIndex(columns[3]));
Koers = (TextView) findViewById(R.id.Koersdiedag);
Koers.setText(body);//body
答案 0 :(得分:1)
您的代码只是阅读收件箱中的最新消息,无论是谁来的。如果您想要来自该特定号码的最新消息,您可以调整查询以匹配该号码,并将结果限制为一条记录。
Uri mSmsinboxQueryUri = Uri.parse("content://sms/inbox");
String[] projection = {"address", "body"};
String phoneNumber = "+597*******";
Cursor cursor1 = getContentResolver().query(mSmsinboxQueryUri,
projection,
"address = ?",
new String[] {phoneNumber},
"date DESC LIMIT 1");
if (cursor1 != null && cursor1.moveToFirst()) {
body = cursor1.getString(cursor1.getColumnIndex("body"));
Koers = (TextView) findViewById(R.id.Koersdiedag);
Koers.setText(body);
}