0

次のコードを使用して、連絡先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;
}
4

1 に答える 1

0

正確に動作しないデバイスは何ですか? メジャー バージョンとデバイスで正常に動作する 2.2 バージョンを使用することをお勧めします。

于 2013-01-09T16:33:39.710 に答える