У меня проблема с моим приложением,
В Египте они собираются добавить дополнительные цифры к номерам мобильных телефонов для расширения, поэтому я создал приложение, чтобы изменить существующие номера на новые.
Итак, в основном я читаю все номера телефонов, основываясь на некоторых условиях, манипулирую ими и сохраняю новые данные,
Я работаю над Eclipse с помощью плагина adt, я пробовал приложение на эмуляторе 2.2 и эмуляторе 2.3 и работает очень хорошо и изменяет все контакты.
но когда я перенес на мобильную галактику Android 2.3.5, он работает без сохранения новых контактных данных, я даже отлажен, чтобы увидеть поток, он работает нормально, получает все числа изменяют их и сохраняют их без ошибок, но контакты не обновляются.
Есть ли определенная причина, можете ли вы дать мне больше идей?
Я хочу предоставить больше информации, я установил froyo 2.2 на свой мобильный и все еще не сохраню новый контактный номер, хотя он работает очень хорошо на эмуляторе, я сохраняю контакт следующим образом:
ContentResolver cr2 = getContentResolver();
String where = Data.RAW_CONTACT_ID + " = ? AND "
+ String.valueOf(Phone.TYPE) + " = ? ";
String[] params = new String[] { id,
String.valueOf(type) };
ArrayList<ContentProviderOperation> ops=new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation
.newUpdate(Data.CONTENT_URI)
.withSelection(where, params)
.withValue(
ContactsContract.CommonDataKinds.Phone.DATA,
phoneNumber).build());
try {
cr2.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, но я обнаружил ошибку и изменил код так:
ContentResolver cr2 = getContentResolver();
String where = Data.CONTACT_ID + " = ? AND " +Data.MIMETYPE + "='" +
Phone.CONTENT_ITEM_TYPE + "'" + " AND "
+ String.valueOf(Phone.TYPE) + " = ? ";
String[] params = new String[] { id,
String.valueOf(type) };
// Cursor phoneCur = managedQuery(Data.CONTENT_URI,
// null, where, params, null);
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation
.newUpdate(Data.CONTENT_URI)
.withSelection(where, params).withValue(
Phone.NUMBER,
phoneNumber).build());
try {
cr2.applyBatch(ContactsContract.AUTHORITY, ops);
count++;
System.out.println(phoneNumber);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (OperationApplicationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Итак, технически я добавил mimetype, и я использовал для обновления phone.data, поэтому я изменил его и на phone.number, теперь он работает нормально на 2.2 / 2.3.5, так что я думаю, этот вопрос закрыт , но у меня есть еще одна вещь, чтобы спросить, прочитанные контакты не включают в себя контакты Facebook или Twitter, есть ли в любом случае, чтобы прочитать все контакты, чтобы обновить их все, включая Facebook и Twitter ????