私は、コンタクトの詳細を取得しよう。 Phone.CONTENT_URIからDISPLAY_NAME、Phone.DATAを取得できます。私は以下のコードを使用します:アンドロイドでウェブサイトの連絡先情報を取得する方法は?
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が0を返します。
ないあなたがやろうとしているか確認してください、それは場合に役立ちます:
UPDATE
Contacts._ID
はにあなたの選択を変更、Data._ID
ではありませんあなたはアンドロイドを介してウェブサイトにアクセスするためにスレッドを使用する必要があります – 131私はちょうど連絡先のURLデータを取得したいです。なぜ私はスレッドを使用する必要がありますか? –