Я пытаюсь получить контактную информацию. Я могу получить DISPLAY_NAME, Phone.DATA из Phone.CONTENT_URI. Я использую ниже коды:Как получить информацию о веб-сайте контакта в android?
String urlData = "";
final String[] projection = new String[] {
ContactsContract.CommonDataKinds.Website.URL,
ContactsContract.CommonDataKinds.Website.TYPE
};
final Cursor contactData = getContentResolver().query(ContactsContract.Data.CONTENT_URI, projection, ContactsContract.Data.CONTACT_ID + "=" + contactId,null, null);
if (contactData.moveToNext()) {
int urlColumnIndex = contactData.getColumnIndex(ContactsContract.CommonDataKinds.Website.URL);
String url = contactData.getString(urlColumnIndex);
String urlType = contactData.getString(contactData.getColumnIndex(ContactsContract.CommonDataKinds.Website.TYPE));
urlData += url + " " + urlType;
return urlData;
}
Он возвращает значение display_name. Я не понимаю, почему я не могу получить данные url.
Как я могу это сделать?
EDIT
У меня есть Contacts._ID.
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
Я использую ниже функцию, чтобы получить контактный адрес URL.
private void getURLById(String id, ContentResolver cr) {
Log.i("@@getURLById", ".");
final String[] projection = new String[] {
ContactsContract.CommonDataKinds.Website.URL,
ContactsContract.CommonDataKinds.Website.TYPE
};
String selection = ContactsContract.Data._ID + " = " + id + " AND " + ContactsContract.Contacts.Data.MIMETYPE + " = '" + ContactsContract.CommonDataKinds.Website.CONTENT_ITEM_TYPE + "'";
final Cursor websites = getActivity().getContentResolver().query(ContactsContract.Data.CONTENT_URI, projection, selection, null, null);
Log.e("Count ", " " + websites.getCount());
Count возвращает ноль.
Не уверен, что вы пытаетесь сделать, но если это помогает, вам нужно использовать Threads для доступа к веб-сайту через android. – 131
Я просто хочу получить данные контактного URL. Почему мне нужно использовать потоки? –