`

访问android平台的通话记录CallLog

阅读更多
转载自:http://android.tgbus.com/Android/androidnews/200902/178074.shtml

Android平台开放程度的确很厉害,你几乎可以调用任何底层的接口,甚至拦截到短信或者呼入电话。这些是J2ME平台无法比拟的。本文介绍一下如何访问android的通话记录。

  android平台上的通话记录是以Content Provider的形式存储在手机上的,因此你需要使用ContentResolver来查询通话记录,返回Cursor接口。如下所示:

package com.me;

import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.CallLog;
import android.widget.SimpleAdapter;
import android.widget.SimpleCursorAdapter;

public class CallLogActivity extends ListActivity {

@Override
protected void onCreate(Bundle arg0) {
  super.onCreate(arg0);
  setContentView(R.layout.main);
  Cursor cursor = getContentResolver().query(CallLog.Calls.CONTENT_URI,
    null, null, null, CallLog.Calls.DEFAULT_SORT_ORDER);
  startManagingCursor(cursor);
  SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
    android.R.layout.simple_list_item_1, cursor,
    new String[] { CallLog.Calls.NUMBER },
    new int[] { android.R.id.text1 });

  setListAdapter(adapter);
}

}

  获得了Cursor之后便可以构建一个Adapter然后调用setListAdapter()来把通话记录显示在屏幕上。CallLog类中定义了Calls类,在android中可以看到大量的内部类的设计。Calls定义了很多常量,方便你来访问通话记录,主要包括两个URI和多个字段定义,比如我们在这里用到的NUMBER。更多内容请参考Andorid doc。

  下面是/res/layout/main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
     android:layout_height="fill_parent">
   
    <ListView android:id="@+id/android:list"
          android:layout_width="fill_parent"
         android:layout_height="fill_parent"/>
   <TextView android:id="@+id/android:empty"
          android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         android:text="No Notes!"/>
</LinearLayout>

分享到:
评论

相关推荐

    Android操作通话记录

    需要注意的是,这里声明的权限是`READ_CONTACTS`和`WRITE_CONTACTS`,而不是`READ_CALL_LOG`和`WRITE_CALL_LOG`,这是因为从Android 6.0(API级别23)开始,访问通话记录权限属于危险权限,需要在运行时动态请求。...

    android项目通话记录源代码

    在Android平台上,通话记录是手机系统中不可或缺的一部分,它允许用户查看、管理他们的通话历史,包括未接电话、已接电话和已拨电话。这个"android项目通话记录源代码"正是针对这一需求提供了一个完整的解决方案。...

    Android Studio 3.2 读取通话记录源码

    在Android平台上,开发人员可以利用系统的API来读取设备的通话记录。这个“Android Studio 3.2 读取通话记录源码”项目提供了一种方法来获取并展示用户的通话历史,包括联系人的姓名、电话号码、通话时间和通话类型...

    Android call/calllog 详细流程图

    在Android操作系统中,电话拨打和通话记录(call/calllog)是系统的核心功能之一,它涉及到许多组件和接口的交互。下面将详细解释这个过程,包括拨打电话的流程、通话记录的保存以及与系统服务的通信。 首先,当...

    android通话记录的查询与删除

    通过查看和运行这个项目,开发者可以更深入地理解Android通话记录的查询与删除操作。 总结来说,Android的通话记录操作主要依赖`CallLog`类和`ContentResolver`,通过声明相应权限,查询和删除通话记录变得简单。在...

    android 获得通话记录

    在Android开发中,有时我们需要访问设备上的通话记录,例如实现拨号记录查询的功能。这通常涉及到对Android系统内部数据的访问和处理。根据提供的代码片段来看,它展示了如何通过Android系统的`ContentResolver`对象...

    Android应用源码之通话记录源码-IT计算机-毕业设计.zip

    本文将深入探讨Android通话记录源码的相关知识点,帮助你理解如何在Android平台上构建一个能够读取、显示和管理通话记录的应用。 1. **AndroidManifest.xml**:这是每个Android应用的核心配置文件,它定义了应用的...

    Android应用通话记录_安卓源码.zip

    在Android平台上,开发一款通话记录应用需要对操作系统的基本架构、权限管理、数据库操作以及UI设计有深入的理解。这里我们主要探讨基于"Android应用源码之通话记录源码"的几个关键知识点。 首先,Android系统是...

    android通话记录获取

    访问Android通话记录的API介绍 Android提供了`CallLog`类来访问和操作通话记录。主要涉及到以下几个关键的类和方法: - **`CallLog.Calls`**:这是一个内部类,提供了与通话记录相关的常量。 - **`CallLog.Calls....

    Android通讯录管理(获取联系人、通话记录、短信消息)

    访问通话记录的数据源是`CallLog.Calls`表。以下是一般步骤: - 权限声明:在AndroidManifest.xml中添加`READ_CALL_LOG`权限。 - 查询通话记录:使用`ContentResolver.query()`,传入`CallLog.Calls.CONTENT_URI`...

    android 获取短信和通话记录信息

    在Android平台上,获取短信和通话记录信息是开发者常用于实现各种功能,如日志记录、安全监控或备份应用的关键操作。下面将详细讲解如何在Android系统中获取这些数据。 一、获取短信信息 1. 权限声明: 首先,为了...

    Android获取手机通话记录的方法

    - 由于涉及到用户隐私数据,访问通话记录需要在AndroidManifest.xml中声明相应的权限,如`&lt;uses-permission android:name="android.permission.READ_CALL_LOG" /&gt;`。 7. **代码示例**: ```java private List, ...

    android 批量插入联系人、短信、通话记录,安装版,apk格式

    短信则通过`SmsProvider`来管理,而通话记录则由`CallLog` Content Provider负责。自Android 4.4(KitKat)版本开始,出于安全考虑,插入短信的权限变得更加严格,一般的应用程序无法直接写入短信数据库,除非具有`...

    Unity获取通话记录通讯录app列表

    在Android系统中,通话记录可以通过ContentProvider来访问。Android提供了`android.provider.CallLog`类,其中的`CallLog.Calls`内容提供者可以用来查询通话记录。在Unity中,我们需要创建一个Java层的插件,该插件...

    真机获取安卓通话记录

    此外,需要注意的是,从Android 9.0(Pie,API级别28)开始,系统对通话记录的访问进行了限制,只有默认的拨号器应用才能直接访问通话记录。对于非默认拨号器应用,开发者可能需要通过其他方式(如广播接收器监听...

    Android hqthdx获取通话记录和短信记录 源码

    在Android平台上,开发人员可以利用系统的API来获取设备上的通话记录和短信记录。"hqthdx"是一个可能的项目或库名,它专注于这个特定的功能。在这个源码中,开发者可能已经实现了一套完整的解决方案,使得其他应用...

    android自定义通讯录类似360通话

    在Android平台上,自定义通讯录应用的开发是一项常见的任务,尤其像360通话这样的应用,它们提供了丰富的功能,如内置联系人列表、通话记录显示以及定制化的拨号盘。以下将详细介绍如何实现这些功能。 1. **自定义...

    获取通话记录

    在Android平台上,获取通话记录是一项常见的功能,通常用于开发通话管理类应用。本文将深入探讨如何在Android系统中读取通话记录,并将其显示为包含姓名、通话日期和通话时长的列表。 首先,我们需要理解Android的...

    Android动态权限申请获取手机短信息及通话记录

    1. **运行时权限**:Android 6.0及以上版本,对于`危险权限`(如访问联系人、短信、通话记录等),应用需要在运行时请求用户授权,而不是在安装时一次性获取。这需要开发者在代码中添加权限检查和请求逻辑。 2. **...

Global site tag (gtag.js) - Google Analytics