如何在android中获取最近完成的电话通话详细信息?
我想获得最近完成的android手机的通话详细信息,在获得这些详细信息后,我想在通话完成后开始我个人应用程序的新活动。基本上,我想先获取电话通话详细信息,然后再将这些详细信息放入android phone的目录/数据库。如何获取这些信息?首先,您需要授予从设备读取通话日志的权限如何在android中获取最近完成的电话通话详细信息?,android,phone-call,calllog,Android,Phone Call,Calllog,我想获得最近完成的android手机的通话详细信息,在获得这些详细信息后,我想在通话完成后开始我个人应用程序的新活动。基本上,我想先获取电话通话详细信息,然后再将这些详细信息放入android phone的目录/数据库。如何获取这些信息?首先,您需要授予从设备读取通话日志的权限 现在使用此方法获取最近的调用日志getCallDetails() 希望它能满足您的需要。我刚刚在一个文本视图中显示了所有通话记录,但您可以根据需要修改代码。:-)Rushabh这个密码给了我除了最近的电话以外的通话细节
现在使用此方法获取最近的调用日志getCallDetails()
希望它能满足您的需要。我刚刚在一个文本视图中显示了所有通话记录,但您可以根据需要修改代码。:-)Rushabh这个密码给了我除了最近的电话以外的通话细节我是说,我想了解刚刚完成的电话通话的详细信息,其数据尚未保存到目录/数据库中。我想进行通话日志活动,在电话通话完成后显示对话框,以询问我自己应用程序的日志机制。因此,此代码未向我提供最近完成的电话通话详细信息,你对此有什么解决办法吗?我同意@VishalV,这不是答案我能理解你除了什么,你找到答案了吗?
private void getCallDetails() {
StringBuffer sb = new StringBuffer();
Cursor managedCursor = managedQuery( CallLog.Calls.CONTENT_URI,null, null,null, null);
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);
sb.append( "Call Details :");
while ( managedCursor.moveToNext() ) {
String phNumber = managedCursor.getString( number );
String callType = managedCursor.getString( type );
String callDate = managedCursor.getString( date );
Date callDayTime = new Date(Long.valueOf(callDate));
String callDuration = managedCursor.getString( duration );
String dir = null;
int dircode = Integer.parseInt( callType );
switch( dircode ) {
case CallLog.Calls.OUTGOING_TYPE:
dir = "OUTGOING";
break;
case CallLog.Calls.INCOMING_TYPE:
dir = "INCOMING";
break;
case CallLog.Calls.MISSED_TYPE:
dir = "MISSED";
break;
}
sb.append( "\nPhone Number:--- "+phNumber +" \nCall Type:--- "+dir+" \nCall Date:--- "+callDayTime+" \nCall duration in sec :--- "+callDuration );
sb.append("\n----------------------------------");
}
managedCursor.close();
call.setText(sb);
}