失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > android获取电话通话记录 Android获取手机通话记录

android获取电话通话记录 Android获取手机通话记录

时间:2021-12-22 01:00:33

相关推荐

android获取电话通话记录 Android获取手机通话记录

1、第一步:安卓手机通话记录是哪个文件

/data/data/com.android.providers.contacts/databases/contacts2.db

手机

Root

后,用

RE

管理器查看这个

SQLite

数据库文件。

如果是来电记录,在这个数据库的

call

表里。

2、第二步:不获取root权限的情况下查看通话记录

(1)manifest.xml配置相应权限

(2)代码实现

public classUtil {

/**

* 利用系统CallLog获取通话历史记录

* @return

*/

@SuppressLint("SimpleDateFormat")

public static StringgetCallHistoryList(Context context, ContentResolver cr){

Cursorcs;

cs=cr.query(CallLog.Calls.CONTENT_URI, //系统方式获取通讯录存储地址

new String[]{

CallLog.Calls.CACHED_NAME, //姓名

CallLog.Calls.NUMBER, //号码

CallLog.Calls.TYPE, //呼入/呼出(2)/未接

CallLog.Calls.DATE, //拨打时间

CallLog.Calls.DURATION //通话时长

},null,null,CallLog.Calls.DEFAULT_SORT_ORDER);

StringcallHistoryListStr="";

int i=0;

if(cs!=null &&cs.getCount()>0){

for(cs.moveToFirst();!cs.isAfterLast() & i<50; cs.moveToNext()){

StringcallName=cs.getString(0);

StringcallNumber=cs.getString(1);

//通话类型

int callType=Integer.parseInt(cs.getString(2));

StringcallTypeStr="";

switch (callType) {

case CallLog.Calls.INCOMING_TYPE:

callTypeStr="呼入";

break;

case CallLog.Calls.OUTGOING_TYPE:

callTypeStr="呼出";

break;

case CallLog.Calls.MISSED_TYPE:

callTypeStr="未接";

break;

}

//拨打时间

SimpleDateFormatsdf= newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");

DatecallDate=newDate(Long.parseLong(cs.getString(3)));

StringcallDateStr=sdf.format(callDate);

//通话时长

int callDuration=Integer.parseInt(cs.getString(4));

int min=callDuration/60;

int sec=callDuration%60;

StringcallDurationStr=min+"分"+sec+"秒";

StringcallOne="类型:" + callTypeStr + ", 称呼:" + callName + ", 号码:"

+callNumber + ", 通话时长:" + callDurationStr + ", 时间:" + callDateStr

+"\n---------------------\n";

callHistoryListStr+=callOne;

i++;

}

}

return callHistoryListStr;

}

}

(3)使用

TextViewtv_callHistory=(TextView) getView().findViewById(R.id.id_tv_content1);

tv_callHistory.setText("通讯记录");

//获取通话记录

ContentResolvercr;

cr=getActivity().getContentResolver();

StringcallHistoryListStr=Util.getCallHistoryList(null, cr);

tv_callHistory.setTextSize(12.0f);

tv_callHistory.setText(callHistoryListStr);

如果觉得《android获取电话通话记录 Android获取手机通话记录》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。