android - 我想阅读 android 中的通话记录

标签 android phone-call calllog

<分区>

Possible Duplicate:
How can I retrieve recently used contacts in 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);

编辑: 从 Jellybean (4.1) 开始,您现在需要权限:

    <uses-permission android:name="android.permission.READ_CALL_LOG" />

为了让它工作而不抛出权限拒绝异常

关于android - 我想阅读 android 中的通话记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5910906/

相关文章:

android - 仅向一项服务发送 Intent

android - 在通话期间显示交互式 float 布局

android - 清除某些号码的 Android 通话记录

android - 如何/如果使用 android.provider.CallLog.Calls.LIMIT_PARAM_KEY

android - 在 Android 设备中写入通话记录

java - Android Studio : How to set an external file(photo from the camera) to an imageview

Android导航组件打开url

android - 使用默认调用应用程序在 Android 应用程序中进行调用

android - OutgoingCall 的连接服务实现

java - 通过隐藏 Manifest 并将代码转换为 Unicode 字符来保护应用程序不被反编译