0
我写了一个应用程序,以删除android中的联系人列表中的联系人。它在模拟器中工作正常,但不会删除设备中的联系人。可能是什么问题呢?我张贴我的code.please帮助我。删除在仿真程序上工作,但不在设备上的联系人
ArrayList ops = new ArrayList();
String [] args = new String [] {contactId};
// if id is raw contact id
ops.add(ContentProviderOperation.newDelete(RawContacts.CONTENT_URI).withSelection(RawContacts._ID + "=?", args) .build());
// if id is contact id
//ops.add(ContentProviderOperation.newDelete(RawContacts.CONTENT_URI).withSelection(RawContacts.CONTACT_ID + "=?", args) .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();
}
这一发现接触使用此代码完成
字符串get_Number(字符串名称) {
字符串数= NULL;
String where= "DISPLAY_NAME like ?";
Cursor people = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, where, new String[]{name}, null);
people.moveToFirst();
try{
contactId = people.getString(people.getColumnIndex(ContactsContract.Contacts._ID)); //this is the ID used to delete contact
String hasPhone = people.getString(people.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (hasPhone.equalsIgnoreCase("1"))
hasPhone = "true";
else
hasPhone = "false" ;
if (Boolean.parseBoolean(hasPhone))
{
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId,null, null);
while (phones.moveToNext())
{
number = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
// mConno.add(position,phoneNumber);
}
phones.close();
}
}
catch(Exception e)
{
}
return number;
}
,并在清单中设置的权限是
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.WRITE_SMS" />
刚才我发现这个程序,我已经开发的怪异行为。在删除联系人应用之前,我开发了一个“添加联系人”应用。
所以发生了什么是它不能删除“添加联系人”应用程序添加的联系人,但删除手动添加的联系人。为什么这个奇怪的事情发生。
但它在模拟器中工作正常。但不在移动设备上。哪里出问题了?
当您尝试删除联系人时发生了什么?你有任何错误等? – 2012-03-12 17:13:04
它是在移动呐,我看不到任何错误。它说“联系已删除”。但实际上并未删除联系人。 – siva 2012-03-12 17:17:26
你使用哪些Android版本?在设备上?在模拟器中? – PKeidel 2012-03-12 17:26:57