2012-02-09 69 views
0

如何檢索短信日誌?我只想要能夠獲取最近通過電話發送短信或通過電話接收的聯繫人列表。如何檢索短信日誌?

我發現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

+0

任何想法如何找出哪些聯繫人發送了最後幾條短信? – ycomp 2012-02-10 01:33:52

回答

0

對不起,但並沒有什麼在Android與「短信日誌」相關的SDK。

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(); 

}