3
一個非常奇怪的象徵。我打算通過此規則更新聯繫人姓名: - 如果聯繫人姓名以「位」+空格(「位」)開頭,則 - >將聯繫人姓名更新爲name.substring(4,name.length()) ,這意味着聯繫人名稱將更新,而不用「位」。更新聯繫人的名稱更新(ContentProviderOperation)
當我使用name.substring從數字降低他們4(我認爲,直到聯繫人的名稱空間),它的工作完美。當我從4個字符開始使用時,聯繫人的姓名會增加。例如,當我使用name = name.substring(4,name.length()),而名稱等於「bit Lili」時,它的更新爲: Lili Lili。
private void updateContact(String name) {
ContentResolver cr = getContentResolver();
String where = ContactsContract.Data.DISPLAY_NAME + " = ?";
String[] params = new String[] {name};
Cursor phoneCur = managedQuery(ContactsContract.Data.CONTENT_URI,null,where,params,null);
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
if ((null == phoneCur)) {//createContact(name, phone);
Toast.makeText(this, "no contact with this name", Toast.LENGTH_SHORT).show();
return;} else {ops.add(ContentProviderOperation.newUpdate(android.provider.ContactsContract.Data.CONTENT_URI)
.withSelection(where, params)
.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name.substring(4,name.length()))
.build());
}
phoneCur.close();
try {cr.applyBatch(ContactsContract.AUTHORITY, ops);}
catch (RemoteException e) {e.printStackTrace();}
catch (OperationApplicationException e) {e.printStackTrace();}}
謝謝!