2017-03-11 2 views
-4

Ich verwende Code hier Check Incoming number is stored in Contacts list or not android für die Prüfung, ob eingehende Nummer vorhanden ist oder nicht in Kontakten. Dieser Code gibt immer kein korrektes Ergebnis.Unzuverlässiges Ergebnis für die Überprüfung der eingehenden Nummer in Kontakt

Ist auf diesem oder einem anderen besseren Weg eine Korrektur erforderlich?


Code:

String res = null; 
try { 
    ContentResolver resolver = context.getContentResolver(); 
    Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber)); 
    String a = uri.getLastPathSegment(); 
    Cursor c = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[]{ContactsContract.CommonDataKinds.Phone.NUMBER}, ContactsContract.CommonDataKinds.Phone._ID + "=?", new String[]{a}, null); 

    if (c != null) { // cursor not null means number is found contactsTable 
     if (c.getCount() > 0) { 
     if (c.moveToFirst()) { // so now find the contact Name 
      res = c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
      //res = c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
     } 
     c.close(); 
     } 
    } 
} catch (Exception ex) { 
    ex.printStackTrace(); 
} 
return res; 
+1

"Dieser Code gibt nicht immer das korrekte Ergebnis." Warum also nicht ein paar Details angeben? Erkläre, warum du auch eine doppelte Frage stellen musst. –

+1

Warum haben Sie die Ausnahme abgefangen und ignoriert, so erhalten Sie ** NIE ** genaue Ergebnisse. – Gattsu

+1

@ Panache ** Sie wissen nicht, wie er 5962 Punkte verdient hat ** es dauert mehr als ein Jahr oder zwei harte Arbeit, tadeln Sie niemandem, wie er seine Zeit für Sie verschwendet, seien Sie höflich und überprüfen Sie die folgende Antwort . – Gattsu

Antwort

1

Versuchen Sie den Code unten seiner einfachen & für mich arbeiten.

public class TestActivity extends Activity { 

private static final int REQUEST_CONTACT_NUMBER = 8512885487; 

/** Pops the "select phone number" window */ 
public void onBrowseForNumbersButtonClicked(View view) { 
    Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, Phone.CONTENT_URI); 
    startActivityForResult(contactPickerIntent, REQUEST_CONTACT_NUMBER); 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
if (resultCode == RESULT_OK) { 
    if(data != null && requestCode == REQUEST_CONTACT_NUMBER) { 
    Uri uriOfPhoneNumberRecord = data.getData(); 
    String idOfPhoneRecord = uriOfPhoneNumberRecord.getLastPathSegment(); 
    Cursor cursor = getContentResolver().query(Phone.CONTENT_URI, new String[]{Phone.NUMBER}, Phone._ID + "=?", new String[]{idOfPhoneRecord}, null); 
    if(cursor != null) { 
    if(cursor.getCount() > 0) { 
     cursor.moveToFirst(); 
     String formattedPhoneNumber = cursor.getString(cursor.getColumnIndex(Phone.NUMBER)); 
     Log.d("TestActivity", String.format("The selected phone number is: %s", formattedPhoneNumber)); 
    } 
    cursor.close(); 
    } 
    } 
else { 
    Log.w("TestActivity", "WARNING: Corrupted request response"); 
} 
} 
else if (resultCode == RESULT_CANCELED) { 
    Log.i("TestActivity", "Popup canceled by user."); 
} 
else { 
    Log.w("TestActivity", "WARNING: Unknown resultCode"); 
} 
} 
} 
+0

immer noch das gleiche Problem, Nummer wird gespeichert, aber der Code findet es nicht. – Panache

+0

@Panache debuggen und prüfen, was das Problem ist, und helfen Sie sich. –

+0

@ Panache kann dir niemand helfen, wenn du dir nicht selbst helfen willst. –

Verwandte Themen