2012-09-19 60 views
1

我想創建一個函數來編輯我的地址簿中的每個單一號碼,但是我發現所有示例只編輯了1個聯繫人,所以如果聯繫人有他們不會被編輯超過1個數字。向Android中的每個電話號碼添加1位數

例如:

艾米有這樣的數字:

093456432 - cellphone 
2345678 - house 
6789504 - work 
34567832 - other 

和應用程序將增加1以上的數字,例如「8」在第二位置,這樣的變化將導致類似:

0893456432 - cellphone 
28345678 - house 
68789504 - work 
384567832 - other 

而這需要發生在我的地址簿中的每一個聯繫人。

已經嘗試過這樣的事情(燒燬一個數字以替換原來的數字來測試),但只編輯了TYPE_HOME這是電話號碼,我想知道我該怎麼做,如果有全局我可以編輯任何數量的聯繫人的類型:

private void updateContact(String name, String phone) 
{ 
    ContentResolver cr = getContentResolver(); 

    String where = 
     ContactsContract.Data.DISPLAY_NAME + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ? AND " 
      + String.valueOf(ContactsContract.CommonDataKinds.Phone.TYPE) + " = ? "; 
    String[] params = 
     new String[] 
     { 
      name, 
      ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE, 
      String.valueOf(ContactsContract.CommonDataKinds.Phone.TYPE_HOME) }; 

    Cursor phoneCur = managedQuery(ContactsContract.Data.CONTENT_URI, null, where, params, null); 

    ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 

    ops.add(ContentProviderOperation 
     .newUpdate(ContactsContract.Data.CONTENT_URI) 
     .withSelection(where, params) 
     .withValue(ContactsContract.CommonDataKinds.Phone.DATA, phone) 
     .build()); 

    phoneCur.close(); 

    try 
    { 
     cr.applyBatch(ContactsContract.AUTHORITY, ops); 
    } 
    catch (RemoteException e) 
    { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    catch (OperationApplicationException e) 
    { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    // Toast.makeText(NativeContentProvider.this, "The number of have been updated " + name+ " to: " + phone, 
    // Toast.LENGTH_SHORT).show(); 
} 

問候。

+3

我沒有答案,但我對你爲什麼想要病態感興趣。 – kcoppock

+1

'因爲我們可以'是所有的書呆子需要@ kcoppock :) – WarrenFaith

+0

在我的國家新的電信管理規定,還有一個數字必須添加到電話號碼。 –

回答

0

程序中的其他地方,您正在閱讀電話號碼。在那個地方,也讀取類型,並將其作爲參數傳遞給updateContact

+0

這是我用來獲取聯繫人的功能,但不知道如何將其發送到更新功能,因爲管理所有註冊表有點複雜:http://pastebin.com/Rw3XUVRa –