You should be able to measure the time between multiple
onCallStateChanged events.

In case of an outgoing call the state would switch from IDLE to
CAll_STATE_OFFHOOK to to IDLE again.

--
Roman Baumgaertner
Sr. SW Engineer-OSDC
·T· · ·Mobile· stick together
The views, opinions and statements in this email are those of the
author solely in their individual capacity, and do not necessarily
represent those of T-Mobile USA, Inc.

On Oct 12, 3:14 am, Nemat <nemate...@gmail.com> wrote:
> Hi friends,
>
> Actually I was working to get duration of outgoing call.But I dont
> find any way of doing this.Then I decided to get the details of
> outgoing call from call log.
>
> But my code works only for Activity.I want this to work with Services
> because I want to get the details related to outgoing call in
> background using services.What should I do to get these details in
> background.I currently implement it for Activity.Here is my complete
> code:
> public void outgoingRecord()
>   {
>           Cursor c = getContentResolver().query(
>               android.provider.CallLog.Calls.CONTENT_URI,
>               null,
>               null,
>               null,
>               android.provider.CallLog.Calls.DATE+ " DESC");
>           startManagingCursor(c);
>
>   int numberColumn = c.getColumnIndex(
>           android.provider.CallLog.Calls.NUMBER);
> int dateColumn = c.getColumnIndex(
>           android.provider.CallLog.Calls.DATE);
> // type can be: Incoming, Outgoing or Missed
> int typeColumn = c.getColumnIndex(
>           android.provider.CallLog.Calls.TYPE);
> int durationColumn=c.getColumnIndex(
>         android.provider.CallLog.Calls.DURATION);
>
> // Will hold the calls, available to the cursor
> ArrayList<String> callList = new ArrayList<String>();
>
> try{
> boolean moveToFirst=c.moveToFirst();
> Log.d("MOVETOFIRST", "moveToFirst="+moveToFirst);}
>
> catch(Exception e)
> {
>           Log.e("MOVETOFIRSTERROR","MOVETOFIRST Error="+e.toString());
>
> }
>
>          String callerPhoneNumber = c.getString(numberColumn);
>          int callDate = c.getInt(dateColumn);
>          int callType = c.getInt(typeColumn);
>          int duration=c.getInt(durationColumn);
>
>          Log.d("CALLS", "callDate="+callDate);
>
>              switch(callType){
>               case android.provider.CallLog.Calls.INCOMING_TYPE:
>
>                           Log.d("INCOMINGCALLLOG", "CallerPhoneNum="+
> callerPhoneNumber+" "+"Duration="+duration);
>
>                                 break;
>               case android.provider.CallLog.Calls.MISSED_TYPE:
>                                   break;
>               case android.provider.CallLog.Calls.OUTGOING_TYPE:
>                              Log.d("OUTGOINGCALLLOG",
> "CallerPhoneNum="+ callerPhoneNumber+" "+"Duration="+duration);
>                                  break;
>
> }
>
>   }
>
> I got error in "  startManagingCursor(c)".
>
> Should I use another way to do this?If yes,What would be that way?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to