1

我正在開發一個簡單的應用程序,其中,當我點擊的EditText電話聯繫將打開,當用戶選擇一個聯繫人,它會顯示在EditText上。 我都做到了,但問題是對於一些接觸它顯示這樣的輸出:取得聯繫沒有從電話簿中Android中

05-09 13:39:03.660: D/Actual No--->>>(953): 84 85 835654 
05-09 13:39:03.660: D/phoneno(953): Tufan 85 835654 
05-09 13:39:08.911: W/IInputConnectionWrapper(953): showStatusIcon on inactive InputConnection 
05-09 13:39:15.428: D/Actual No--->>>(953): 08485835654 
05-09 13:39:15.428: D/phoneno(953): Tufan8485835654 
05-09 13:39:22.512: W/IInputConnectionWrapper(953): showStatusIcon on inactive InputConnection 
05-09 13:39:31.825: W/IInputConnectionWrapper(953): showStatusIcon on inactive InputConnection 
05-09 13:39:42.468: W/IInputConnectionWrapper(953): showStatusIcon on inactive InputConnection 
05-09 13:45:16.147: D/Actual No--->>>(953): +918485835654 
05-09 13:45:16.147: D/phoneno(953): Tufan8485835654 

因此,大家可以看到一些接觸它給了我正確的結果。如何解決這個朋友?

檢查我的Java代碼:

Uri contactData = data.getData(); 
Cursor c = managedQuery(contactData, null, null, null, null); 
if (c.moveToFirst()) { 
    String id = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts._ID)); 

    String hasPhone = c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); 

    if (hasPhone.equalsIgnoreCase("1")) { 
     Cursor phones = getContentResolver().query(
       ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, 
       ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + id, 
       null, null); 
     phones.moveToFirst(); 
     String phn_no = phones.getString(phones.getColumnIndex("data1")); 
     Log.d("Actual No--->>>", phn_no); 
     int len = phn_no.length() % 10; 
     String phn_no1 = phn_no.substring(len, phn_no.length()); 
     Log.d("phoneno", "Tufan" + phn_no1); 
    } 
} 

我認爲問題出在數量之間的空間,但其高達用戶他是如何保存。但作爲程序員,我需要解決。如果有人知道,那麼請幫助我。

+0

所以你想做什麼 – Elltz

回答

2

獲取聯繫號碼的代碼似乎沒問題。

我想麻煩只是在接觸的空間來了沒有。

您可以通過替換刪除空間 -

String phn_no = phones.getString(phones.getColumnIndex("data1")); 

String phn_no = phones.getString(phones.getColumnIndex("data1")).trim().replace(" ",""); 

希望它有幫助。祝你好運。

0

試試這段代碼是運行代碼。

Cursor phones = getContentResolver().query(
      ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, 
      null, null); 
    while (phones.moveToNext()) { 
     String name = phones 
       .getString(phones 
         .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
     String phoneNumber = phones 
       .getString(phones 
         .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
     Toast.makeText(getApplicationContext(), name, Toast.LENGTH_LONG) 
       .show(); 

     System.out.println(name + "==" + phoneNumber); 

    } 
    phones.close(); 
相關問題