4
可能重複讀取通話記錄:
How can I retrieve recently used contacts in android?我想在Android
我想讀的最近使用過的聯繫人。
任何人都知道如何做到這一點?
可能重複讀取通話記錄:
How can I retrieve recently used contacts in android?我想在Android
我想讀的最近使用過的聯繫人。
任何人都知道如何做到這一點?
1.創建觀察員:
class CustomContentObserver extends ContentObserver {
public CustomContentObserver(Handler handler) {
super(handler);
}
@Override public boolean deliverSelfNotifications() {
return false;
}
public void logCallLog() {
long dialed;
String columns[]=new String[] {
CallLog.Calls._ID,
CallLog.Calls.NUMBER,
CallLog.Calls.DATE,
CallLog.Calls.DURATION,
CallLog.Calls.TYPE};
Cursor c;
c = getContentResolver().query(Uri.parse("content://call_log/calls"),
columns, null, null, "Calls._ID DESC"); //last record first
while (c.moveToNext()) {
dialed=c.getLong(c.getColumnIndex(CallLog.Calls.DATE));
Log.i("CallLog","type: " + c.getString(4) + "Call to number: "+number+", registered at: "+new Date(dialed).toString());
}
}
public void onChange(boolean selfChange) {
super.onChange(selfChange);
Log.d("PhoneService", "StringsContentObserver.onChange(" + selfChange + ")");
logCallLog();
}
}
2.註冊觀察員:
Uri mediaUri = android.provider.CallLog.Calls.CONTENT_URI;
Log.d("PhoneService", "The Encoded path of the media Uri is "
+ mediaUri.getEncodedPath());
CustomContentObserver custObser = new CustomContentObserver(handler);
imageContentRsr.registerContentObserver(mediaUri, false, custObser);
編輯: 作爲傑利貝恩(4.1),你現在需要兩個許可
<uses-permission android:name="android.permission.READ_CALL_LOG" />
爲此工作,而不是拋出權限拒絕異常
什麼類型的對象是imagecontentRsr? – 2012-10-26 22:38:58
嘗試getContentResolver() – alezhka 2012-10-29 09:04:20
謝謝我已經嘗試使用getContentResolver()並且可以工作,但在ContentObserver類之外。在這個類下它說getContentReseolver是未定義的。 – 2012-10-29 13:20:14