2013-05-08 80 views
1

我有這樣的代碼有多個電話號碼更新聯繫人

public void updateContact (String contactId, String newNumber) {ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 

    String selectPhone = Data.CONTACT_ID + "=? AND " + Data.MIMETYPE + "='" + 
        Phone.CONTENT_ITEM_TYPE + "'"; 

    String[] phoneArgs = new String[]{contactId}; 
    ops.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI) 
        .withSelection(selectPhone, phoneArgs) 
        .withValue(Phone.NUMBER, newNumber) 
        .build()); 
      try { getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 
      } catch (RemoteException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (OperationApplicationException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      }  
    } 

這是我從這裏How to update contact number using Android了,爲了通過我的所有聯繫人,並加入到他們中的每一個我自己的前綴改變了它。

我經歷了所有的聯繫人運行,我這個 String id = phones.getString(phones.getColumnIndex(ContactsContract.Contacts._ID));

聯繫人的ID上面的功能提供。但有些聯繫人特別是那些有多個號碼,有一些只有一個號碼,不改變,以獲得新的前綴,即使給定的ID是正確的?! 。 我在這裏想念什麼,我不知道要改變什麼。我認爲這可能是mime類型,但我可以想象有人可能沒有使用Android預裝類型的手機並使用自定義類型。 我沒有得到任何錯誤。謝謝大家的時間!

回答

1

我終於改變了我的代碼正常工作,我傳遞了聯繫人ID,但我需要手機ID ......這裏是正確的代碼。

public void updateContact (String contactId, String newNumber) {   


    ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 
    String selectPhone = Data._ID + "=? AND " + Data.MIMETYPE + "='" + 
         Phone.CONTENT_ITEM_TYPE + "'"; 

      String[] phoneArgs = new String[]{contactId}; 
      ops.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI) 
        .withSelection(selectPhone, phoneArgs) 
        .withValue(Phone.NUMBER, newNumber) 
        .build()); 
      try { 
       getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 
      } catch (RemoteException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (OperationApplicationException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      }  
    } 

不要忘記設置Android清單相應的權限(寫入聯繫人)

相關問題