5

連絡先リストに番号が存在することを確認しようとしています。以下のコードを使用しますが、この行で常にエラーが発生します

 Cursor cur = this.getContentResolver().query(lookupUri,mPhoneNumberProjection, null, null, null);

誰でも私が問題を見つけるのを手伝ってもらえますか、私はマニフェストで私の連絡先を読む許可を与えました

  public String getContactName(String number)
{
    String name = null;
    Uri lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
    String[] mPhoneNumberProjection = { PhoneLookup._ID, PhoneLookup.NUMBER, PhoneLookup.DISPLAY_NAME };
    Cursor cur = this.getContentResolver().query(lookupUri,mPhoneNumberProjection, null, null, null);
    try 
    {
       if (cur.moveToFirst())
       {
           name = cur.getString(cur.getColumnIndex(PhoneLookup.DISPLAY_NAME));
           return name;
       }
    }
    finally 
    {
    if (cur != null)
       cur.close();
    }
    return "unknown number";
}

これは私のエラーログです!エラーログ

4

2 に答える 2

8

このコードを試してください:(使用コンテキスト)

public boolean contactExists(Context context, String number) {
    /// number is the phone number
    Uri lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
    String[] mPhoneNumberProjection = { PhoneLookup._ID, PhoneLookup.NUMBER, PhoneLookup.DISPLAY_NAME };
    Cursor cur = context.getContentResolver().query(lookupUri,mPhoneNumberProjection, null, null, null);
    try {
        if (cur.moveToFirst()) {
            return true;
        }
    }
    finally {
        if (cur != null){
            cur.close();
        }
        return false;
    }
}
于 2013-03-22T09:08:46.603 に答える