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