【问题标题】:How can I retrieve SMS logs?如何检索短信日志?
【发布时间】:2012-02-09 19:29:31
【问题描述】:

如何检索 SMS 日志?我只是希望能够获取最近通过电话发送 SMS 消息或通过电话接收的联系人列表。

我找到了 CallLogs 对象,但我怀疑这仅适用于电话...如果我错了,请纠正我。

http://www.dcpagesapps.com/developer-resources/android/25-android-tutorial-call-logs

http://developer.android.com/reference/android/provider/CallLog.Calls.html

我找到了这个,但我想知道是否有更好的方法......

Android 1.5: Reading SMS messages

【问题讨论】:

  • 任何想法如何找出最近几条短信发送给了哪些联系人?

标签: android


【解决方案1】:

这是我获取短信的方式,效果很好。发送和接收有单独的日志。某些第三方 SMS 程序消息可能不会显示。它查找从名为 phoneNumbers 的字符串中的号码发送或接收的 SMS,并将所有找到的 SMS 消息添加到数组中以进行处理。

public void getSMS(){

final String[] projection = null;
final String selection = "address IN (" + phoneNumbers + ")";
final String selectionArgs[] = null;
final String sortOrder = null;
Cursor c = null;

c = getContentResolver().query(
Uri.parse("content://sms/sent"),
projection,
 selection,
 selectionArgs,
 sortOrder);

if (c.moveToFirst() && c.isNull(c.getColumnIndex("date"))==false && c.isNull(c.getColumnIndex("address"))==false) {

do {

CCall call = new CCall(c.getLong(c.getColumnIndex("date")),c.getString(c.getColumnIndex("address")),4,0);
arrCall.add(call);

} while (c.moveToNext()); 


    }

c = getContentResolver().query(
Uri.parse("content://sms/inbox"),
projection,
selection,
selectionArgs,
sortOrder);

if (c.moveToFirst() &&  c.isNull(c.getColumnIndex("date"))==false && c.isNull(c.getColumnIndex("address"))==false) {

do {

CCall call = new CCall(c.getLong(c.getColumnIndex("date")),c.getString(c.getColumnIndex("address")),5,0);

arrCall.add(call);

 } while (c.moveToNext()); 

}

c.close();

}

【讨论】:

    【解决方案2】:

    抱歉,Android SDK 中没有与“短信日志”相关的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-24
      • 2021-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多