如何在Android Studio中获取最新的通话记录?
我有一个下面的代码。但我不能限制它。我只想得到最后20个通话记录。 但这就是我看到所有时间搜索日志的方式 这应该是最后一次通话记录,我只需要看20条。如果有任何帮助,我将不胜感激。 我的代码如何在Android Studio中获取最新的通话记录?,android,android-cursor,telephonymanager,calllog,Android,Android Cursor,Telephonymanager,Calllog,我有一个下面的代码。但我不能限制它。我只想得到最后20个通话记录。 但这就是我看到所有时间搜索日志的方式 这应该是最后一次通话记录,我只需要看20条。如果有任何帮助,我将不胜感激。 我的代码 private void getCallLogs(){ ContentResolver cr=getBaseContext().getContentResolver(); 游标c=cr.query(CallLog.Calls.CONTENT_URI,null,null,null,null); int tot
private void getCallLogs(){
ContentResolver cr=getBaseContext().getContentResolver();
游标c=cr.query(CallLog.Calls.CONTENT_URI,null,null,null,null);
int totalCall=1;
如果(c!=null){
totalCall=c.getCount();
if(c.moveToFirst()){
对于(int j=0;j
在这里,我们可以使用已经创建的for循环创建一个整数,并在这里设置一个限制
我很抱歉我的英语不好。
功能
private void getCallLogs(){
ContentResolver cr=getBaseContext().getContentResolver();
游标c=cr.query(CallLog.Calls.CONTENT_URI,null,null,null,null);
int totalCall=1;
如果(c!=null){
totalCall=10;//管理员呼叫日志限制
如果(c.moveToLast()){//开始从最后一个日志中提取日志,则可以对第一个日志使用moveToFirst()
对于(int j=0;j
请在清单文件中添加此权限
在活动文件中添加此函数,并在oncreate函数中调用它
public void getCallLogs(){
int标志=1;
title.setText(Html.fromHtml(“调用日志”));
deviceDetails.setText(Html.fromHtml(“”);
StringBuilder调用日志=新建StringBuilder();
ArrayList calllogsBuffer=新的ArrayList();
calllogsBuffer.clear();
游标managedCursor=managedQuery(CallLog.Calls.CONTENT\u URI,
空,空,空,空);
int number=managedCursor.getColumnIndex(CallLog.Calls.number);
int type=managedCursor.getColumnIndex(CallLog.Calls.type);
int date=managedCursor.getColumnIndex(CallLog.Calls.date);
int duration=managedCursor.getColumnIndex(CallLog.Calls.duration);
while(managedCursor.moveToNext()){
字符串phNumber=managedCursor.getString(数字);
String callType=managedCursor.getString(类型);
String callDate=managedCursor.getString(日期);
Date CallDayer=新日期(长值of(callDate));
String callDuration=managedCursor.getString(duration);
字符串dir=null;
int dircode=Integer.parseInt(callType);
开关(dircode){
案例CallLog.Calls.OUTGOING_类型:
dir=“传出”;
打破
案例CallLog.Calls.INCOMING_类型:
dir=“传入”;
打破
案例CallLog.Calls.MISSED_类型:
dir=“MISSED”;
打破
}
calllogsBuffer.add(“\n电话号码:“+phNumber+”\n呼叫类型:”
+目录+“\n呼叫日期:”+CallDaily
+“\n呼叫持续时间(秒):+callDuration+”\n”);
}
managedCursor.close();
}
你的用于循环i
private void getCallLogs() {
ContentResolver cr = getBaseContext().getContentResolver();
Cursor c = cr.query(CallLog.Calls.CONTENT_URI, null, null, null, null);
int totalCall = 1;
if (c != null) {
totalCall = c.getCount();
if (c.moveToFirst()) {
for (int j = 0; j < totalCall; j++) {
String callDate = c.getString(c.getColumnIndexOrThrow(CallLog.Calls.DATE));
String phNumber = c.getString(c.getColumnIndexOrThrow(CallLog.Calls.NUMBER));
String callDuration = c.getString(c.getColumnIndexOrThrow(CallLog.Calls.DURATION));
Date dateFormat= new Date(Long.valueOf(callDate));
String callDayTimes = String.valueOf(dateFormat);
String direction = null;
switch (Integer.parseInt(c.getString(c.getColumnIndexOrThrow(CallLog.Calls.TYPE)))) {
case Telephony.Sms.MESSAGE_TYPE_INBOX:
direction = "OUTGOING";
break;
case Telephony.Sms.MESSAGE_TYPE_SENT:
direction = "INGOING";
break;
case Telephony.Sms.MESSAGE_TYPE_OUTBOX:
direction = "MISSED";
break;
default:
break;
}
Toast.makeText(this, phNumber + direction + callDuration + callDayTimes, Toast.LENGTH_SHORT).show();
}
}
c.close();
}
}
private void getCallLogs() {
ContentResolver cr = getBaseContext().getContentResolver();
Cursor c = cr.query(CallLog.Calls.CONTENT_URI, null, null, null, null);
int totalCall = 1;
if (c != null) {
totalCall = 10; // intenger call log limit
if (c.moveToLast()) { //starts pulling logs from last - you can use moveToFirst() for first logs
for (int j = 0; j < totalCall; j++) {
String phNumber = c.getString(c.getColumnIndexOrThrow(CallLog.Calls.NUMBER));
String callDate = c.getString(c.getColumnIndexOrThrow(CallLog.Calls.DATE));
String callDuration = c.getString(c.getColumnIndexOrThrow(CallLog.Calls.DURATION));
Date dateFormat= new Date(Long.valueOf(callDate));
String callDayTimes = String.valueOf(dateFormat);
String direction = null;
switch (Integer.parseInt(c.getString(c.getColumnIndexOrThrow(CallLog.Calls.TYPE)))) {
case CallLog.Calls.OUTGOING_TYPE:
direction = "OUTGOING";
break;
case CallLog.Calls.INCOMING_TYPE:
direction = "INCOMING";
break;
case CallLog.Calls.MISSED_TYPE:
direction = "MISSED";
break;
default:
break;
}
c.moveToPrevious(); // if you used moveToFirst() for first logs, you should this line to moveToNext
Toast.makeText(getBaseContext(), phNumber + callDuration + callDayTimes + direction, Toast.LENGTH_SHORT).show(); // you can use strings in this line
}
}
c.close();
}
}
<uses-permission android:name="android.permission.READ_CALL_LOG"/>