我想从收件箱中读取所有短信并检查一个特定的关键字。我开发了这个代码。但它没有产生所需的结果。请建议我做出更正。
public void onClick(View arg0 ){
Uri uri = Uri.parse("content://sms/inbox");
ContentResolver content = getContentResolver();
Cursor c = content.query(uri,new String[] { "_id","address","body","person"}, null, null, null);
if(c.getCount() > 0)
{
while(c.moveToNext())
{
colName = colName + c.getString(c.getColumnIndex("body")) + "\n";
if(colName.contains("hai"))
textview1.setText("present");
else
textview1.setText("not present");
}
}
}
});
}
答案 0 :(得分:1)
由于您提供的信息问题相当模糊,这只是一个猜测:
如果您有多条短信,其中一条包含“hai”字样,如果此短信不是最后一条,则生成的文字将“不存在”,因为您覆盖此文本视图用光标每次迭代。
因此,例如,如果您在将textview设置为“present”后添加一个返回,那么如果该字词出现在至少一条短信中,您应该能够看到结果“存在”。
if(colName.contains("hai")){
textview1.setText("present");
return;
}else{
textview1.setText("not present");
}