次のコードを使用して、連絡先IDを使用してAndroidで連絡先の詳細を取得しています。ただし、コードはAndroidデバイスバージョン2.3.5でのみ正常に機能し、2.3.3または3以降のバージョンでは機能しません。以下は、contactIdがその特定の連絡先のIDである私のコードです。実行がその部分に移動しませんif (phone.moveToFirst()) {}
クエリに問題がありますか?もしそうなら、なぜそれはバージョン2.3.5でうまく動作するのですか?どんな助けでもありがたいです..ありがとう
public String queryAllPhoneNumbersForContact(int contactId)
{
String[] projection = new String[] { Phone.NUMBER, Phone.TYPE };
@SuppressWarnings("deprecation")
Cursor phone = managedQuery(Phone.CONTENT_URI,
projection,
Data.CONTACT_ID + "=?",
new String[] { String.valueOf(contactId) }, null);
if (phone.moveToFirst())
{
int contactNumberColumnIndex = phone.getColumnIndex(Phone.NUMBER);
int contactTypeColumnIndex = phone.getColumnIndex(Phone.TYPE);
while (!phone.isAfterLast())
{
String number = phone.getString(contactNumberColumnIndex).trim();
int type = phone.getInt(contactTypeColumnIndex);
System.out.println("number" + number);
System.out.println("Type" + getString(Phone.getTypeLabelResource(type)));
phone.moveToNext();
if ((getString(Phone.getTypeLabelResource(type)).equals("Mobile")))
{
Log.e("WorkNo. : ", number);
return number;
}
}
}
phone.close();
return null;
}