Salman Roy
Salman Roy

Reputation: 575

How to get "Internet Call" Information in Android

I'm working on android application in which I take backup of all contact information and then restore, I retrieve all information of contact, For example:

Display Name

Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null,null, null, null)
String  name = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));

Phone Number

Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId,null, null);   

Similary But I unable to get "Internet Call" value. Kindly anyone tell in which class I will get information about Internet Call information.

Upvotes: 2

Views: 1593

Answers (2)

Emran Hamza
Emran Hamza

Reputation: 3869

i have tested. i am able to get internet call value. try below code.

Uri uri = ContactsContract.Contacts.CONTENT_URI;
ContentResolver cr = getContentResolver();
Cursor cur=cr.query(uri, null, null, null, sortOrder);
        if(cur.getCount()>0){
        while(cur.moveToNext()){
  if(Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)))> 0) {
String internetWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?"; 
                    String[] internetWhereParams = new String[]{id,ContactsContract.CommonDataKinds.SipAddress.CONTENT_ITEM_TYPE}; 
                    Cursor internetCur = cr.query(ContactsContract.Data.CONTENT_URI, null, internetWhere, internetWhereParams, null); 
                    if (internetCur.moveToFirst()) { 
                    String internetCall = internetCur.getString(internetCur.getColumnIndex(ContactsContract.CommonDataKinds.SipAddress.SIP_ADDRESS));
        Log.e(TAG, "internet Call: " + internetCall);
                    } internetCur.close();

}              
            }
        } cur.close();   

Upvotes: 0

gtwod
gtwod

Reputation: 26

Dont know if this is the best way, but it worked, I am fairly new new to android.

Uri uri = ContactsContract.Data.CONTENT_URI;
String[] projection = new String[] {
    ContactsContract.Data._ID,
    ContactsContract.Data.DISPLAY_NAME,
    ContactsContract.CommonDataKinds.SipAddress.SIP_ADDRESS,
    ContactsContract.CommonDataKinds.SipAddress.TYPE,
};
String selection = 
    ContactsContract.Data.MIMETYPE+" ='" 
    +ContactsContract.CommonDataKinds.SipAddress.CONTENT_ITEM_TYPE+"'";
String[] selectionArgs = null;
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME+ " COLLATE LOCALIZED ASC";
Cursor cursor = managedQuery(uri, projection, selection, selectionArgs, sortOrder);

It seems that the phone number is stored in misc information data and you have search on the mime type.

HTH

g.

Upvotes: 1

Related Questions