this code is to check number has whatsapp or not and make whatsapp audio and video call
first check wether number have whatsapp or not ...if you dont know
if rowContactId (return type of hasWhatsapp) is not equal to '0' then this number has whatsapp.
.
public String hasWhatsapp( getContactIDFromNumber(795486179).toString(),MAinactivity.this )
{
String rowContactId = null;
boolean hasWhatsApp;
String[] projection = new String[]{ContactsContract.RawContacts._ID};
String selection = ContactsContract.Data.CONTACT_ID + " = ? AND account_type IN (?)";
String[] selectionArgs = new String[]{contactID, "com.whatsapp"};
Cursor cursor = getContentResolver().query(ContactsContract.RawContacts.CONTENT_URI, projection, selection, selectionArgs, null);
if (cursor != null) {
hasWhatsApp = cursor.moveToNext();
if (hasWhatsApp) {
rowContactId = cursor.getString(0);
}
cursor.close();
}
return rowContactId;
}
public static int getContactIDFromNumber( contactNumber,Context context)
{
contactNumber = Uri.encode(contactNumber);
int phoneContactID = new Random().nextInt();
Cursor contactLookupCursor = context.getContentResolver().query(Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI,contactNumber),new String[] {ContactsContract.PhoneLookup.DISPLAY_NAME, ContactsContract.PhoneLookup._ID}, null, null, null);
while(contactLookupCursor.moveToNext())
{
phoneContactID = contactLookupCursor.getInt(contactLookupCursor.getColumnIndexOrThrow(ContactsContract.PhoneLookup._ID));
}
contactLookupCursor.close();
return phoneContactID;
}
//your number is support for whatsapp then come to here to make whatsapp call
// this is for whatsapp call
wtsapp_call.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
String mimeString = "vnd.android.cursor.item/vnd.com.whatsapp.voip.call";
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
//here you have to pass whatsApp contact number as contact_number ..
String name= getContactName( contact_number, MainActivity.this);
int whatsappcall=getContactIdForWhatsAppCall(name,MainActivity.this);
if (whatsappcall!=0) {
intent.setDataAndType(Uri.parse("content://com.android.contacts/data/" +whatsappcall),
"vnd.android.cursor.item/vnd.com.whatsapp.voip.call");
intent.setPackage("com.whatsapp");
startActivityForResult(intent, WHATSAPP_NUMMBER);
}
}
});
//for whatsapp video call
wtsapp_video.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
//here you have to pass whatsApp contact number as number..
String name= getContactName( number, MainActivity.this);
int videocall=getContactIdForWhatsAppVideoCall(name,MainActivity.this);
if (videocall!=0)
{
intent.setDataAndType(Uri.parse("content://com.android.contacts/data/" +videocall),
"vnd.android.cursor.item/vnd.com.whatsapp.video.call");
intent.setPackage("com.whatsapp");
startActivity(intent);
}
}
});
public String getContactName(final String phoneNumber, Context context)
{
Uri uri=Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI,Uri.encode(phoneNumber));
String[] projection = new String[]{ContactsContract.PhoneLookup.DISPLAY_NAME};
String contactName="";
Cursor cursor=context.getContentResolver().query(uri,projection,null,null,null);
if (cursor != null) {
if(cursor.moveToFirst()) {
contactName=cursor.getString(0);
}
cursor.close();
}
return contactName;
}
public int getContactIdForWhatsAppCall(String name,Context context)
{
cursor = getContentResolver().query(
ContactsContract.Data.CONTENT_URI,
new String[]{ContactsContract.Data._ID},
ContactsContract.Data.DISPLAY_NAME + "=? and "+ContactsContract.Data.MIMETYPE+ "=?",
new String[] {name,"vnd.android.cursor.item/vnd.com.whatsapp.voip.call"},
ContactsContract.Contacts.DISPLAY_NAME);
if (cursor.getCount()>0)
{
cursor.moveToNext();
int phoneContactID= cursor.getInt(cursor.getColumnIndex(ContactsContract.Data._ID));
System.out.println("9999999999999999 name "+name+" id "+phoneContactID);
return phoneContactID;
}
else
{
System.out.println("8888888888888888888 ");
return 0;
}
}
public int getContactIdForWhatsAppVideoCall(String name,Context context)
{
Cursor cursor = getContentResolver().query(
ContactsContract.Data.CONTENT_URI,
new String[]{ContactsContract.Data._ID},
ContactsContract.Data.DISPLAY_NAME + "=? and "+ContactsContract.Data.MIMETYPE+ "=?",
new String[] {name,"vnd.android.cursor.item/vnd.com.whatsapp.video.call"},
ContactsContract.Contacts.DISPLAY_NAME);
if (cursor.getCount()>0)
{
cursor.moveToFirst();
int phoneContactID= cursor.getInt(cursor.getColumnIndex(ContactsContract.Data._ID));
return phoneContactID;
}
else
{
System.out.println("8888888888888888888 ");
return 0;
}
}