我希望您能找到一种特定的方式来寻找包含特定单词的短信,并自动回复。我已经找到了一种回复短信的方法,但我仍然无法找到这些短信...
虽然这个方法没有被官方文档记录,但人们已经使用了多年,如果更新改变了我们访问短信数据库的方式,将会影响数百个用户的应用程序。因此,我认为他们不会很快改变这个方法。
无论如何,首先创建一个指向 SMS 数据库的游标对象,然后只需运行一个没有条件的查询语句。接着遍历整个数据库,提取所需的值。有人还友好地发布了数据库中不同列的名称。在这里:安卓短信数据库有多少列?
以下是从数据库获取短信的代码片段:
Cursor messages;
Columns message = ColumnsFactory.messages(); //points to structutre
messages = getContentResolver().query(Uri.parse("content://sms/"),
null, null, null, null);
while (messages.moveToNext()) {
//do stuff here.
if (smsBody.contentEquals("word to match")) {
// create reply
}
有一个未记录的短信内容提供程序:"content://sms/inbox"。但这不是官方的,可能会发生变化。没有适当的短信访问方式。