2016-06-24 14 views
2

....は、直接下記のコードは、ある

Cursor c=context.getContentResolver().query(ContactsContract.Data.CONTENT_URI, 
       new String[]{ContactsContract.Contacts.Data._ID}, 
ContactsContract.Data.DATA1 + " like '%" + contactNumber + "' and data2='Viber' and mimetype='vnd.android.cursor.item/vnd.com.viber.voip.viber_number_message'", 
       null, null); 
c.moveToFirst(); 
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("content://com.android.contacts/data/" + c.getString(0))); 

........ 

答えて

0

public void sendViberMessageTo(String contactNumber) { 
    if (contactNumber.length() > 4) { 
     contactNumber = contactNumber.substring(3); 
    } 
    Intent intent = null; 
    Cursor c = context.getContentResolver().query(ContactsContract.Data.CONTENT_URI, 
      new String[]{ContactsContract.Contacts.Data._ID}, ContactsContract.Data.DATA1 + " like '%" + contactNumber + "' and data2='Viber' and mimetype='vnd.android.cursor.item/vnd.com.viber.voip.viber_number_message'", 
      null, null); 
    if (c.moveToFirst()) { 
     intent = new Intent(Intent.ACTION_VIEW, Uri.parse("content://com.android.contacts/data/" + c.getString(0))); 
     c.close(); 
     intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET | Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP); 
     intent.setPackage("com.viber.voip"); 
    } 
    if (intent != null) { 
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(intent); 
     Toast.makeText(context, "Viber : " + contactNumber, Toast.LENGTH_SHORT).show(); 
    } else { 
     Toast.makeText(context, "Viber not available for this contact", Toast.LENGTH_SHORT).show(); 
    } 
} 
私のために働いたViberのチャット画面を開くにはcontacts.dbから列インデックスを取得したいです
関連する問題