0

私はここで関連するいくつかの質問を読みましたが、これに対する答えを見つけることができません:私はAndroid 2.1デバイス(HTC Incredible)を持っています。ただし、私のアプリは初期の(SDK 5より前の)デバイスと互換性がある必要があるため、非推奨の形式のフィルターURIを使用しています。

Uri contactUri = Uri.withAppendedPath(Contacts.Phones.CONTENT_FILTER_URL, Uri.encode(number));
Cursor C = context.getContentResolver().query(contactUri , null, null, null, null));

番号の形式は15555551212です。これにより、少なくとも私のデバイスでは連絡先が見つかりません。ただし、新しい(SDK 5以降)ContactsContract形式のURIに変更する

Uri contactUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
Cursor C = context.getContentResolver().query(contactUri , null, null, null, null));

成功につながります。元々、連絡先の対応する番号は+1 555 555 5555の形式でしたが、入力番号15555555555と完全に一致するように変更しましたが、古い形式のURIは引き続き失敗します。どちらの場合も、新しい形式のURIは成功します。

なぜこれが当てはまるのかについて誰かが考えていますか?困った!

4

1 に答える 1

0

それだけでした。古い API ではうまくいきません。古いデバイスとの互換性が必要なため、Reflection を使用して、API > 4 で新しい API 呼び出し (ContactsContract) を読み込み、使用しました。

于 2010-08-06T18:50:41.590 に答える