Tag: contactscontract

Android:从电话号码中检索联系人姓名

我想检索与传入电话号码关联的联系人姓名。 当我在有一个String的broascastreceiver中处理进来的号码时,来话呼叫者的名字将大大地帮助我的项目。 我会认为这涉及到一个查询使用SQL WHERE子句作为filter,但我需要sorting的联系人? 一个例子或提示将是非常有帮助的。

Android联系人在单个数据库查询中显示姓名和电话号码?

我试图从本地数据库中获取显示名称和电话号码(任意或全部)的联系人列表。 有很多方法可以通过查询手机的数据库来获取这些信息,但这会带来相当大的开销。 这是我一直在处理的查询,但结果是 Uri uri = ContactsContract.Contacts.CONTENT_URI; String[] projection = new String[] { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER}; String selection = ContactsContract.Contacts.HAS_PHONE_NUMBER + " = '1'"; String[] selectionArgs = null; String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC"; Cursor people = getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder); int index_id = people.getColumnIndex(ContactsContract.Contacts._ID); int indexName = people.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); int indexNumber […]

如何加载联系人照片?

我无法在Android中加载联系人的照片。 我已经search了一个答案,但到目前为止已经空了。 有没有人有一个查询联系人的例子,然后加载照片? 所以,给一个contactUri来自一个Activity使用的结果 startActivityForResult(new Intent(Intent.ACTION_PICK,ContactsContract.CommonDataKinds.Phone.CONTENT_URI),PICK_CONTACT_REQUEST) 是: 内容://com.android.contacts/data/1557 loadContact(..)工作正常。 但是,当我调用getPhoto(…)方法时,我得到一个null值的照片InputStream。 这也是令人困惑的,因为URI值是不同的。 contactPhotoUri的计算结果如下: 内容://com.android.contacts/contacts/1557 请参阅以下代码中的内嵌评论。 class ContactAccessor { /** * Retrieves the contact information. */ public ContactInfo loadContact(ContentResolver contentResolver, Uri contactUri) { //contactUri –> content://com.android.contacts/data/1557 ContactInfo contactInfo = new ContactInfo(); // Load the display name for the specified person Cursor cursor = contentResolver.query(contactUri, new String[]{Contacts._ID, Contacts.DISPLAY_NAME, […]

从android联系人select器获取联系信息

我正在尝试拨打联系人select器,将人员姓名,电话和电子邮件转换为string,并使用意向将其发送到其他活动。 到目前为止这工作: Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); startActivityForResult(intent, 1); // … @Override public void onActivityResult(int reqCode, int resultCode, Intent data) { super.onActivityResult(reqCode, resultCode, data); if (resultCode == Activity.RESULT_OK) { Uri contactData = data.getData(); Cursor c = managedQuery(contactData, null, null, null, null); if (c.moveToFirst()) { String name = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME)); Intent intent = new Intent(CurrentActivity.this, NewActivity.class); […]