2010-03-26 65 views
-1

我通過以下代碼添加了一個聯繫人到android。如何刪除android 2.1中的聯繫人

ContentValues values = new ContentValues(); 
Uri rawContactUri = getContentResolver().insert(RawContacts.CONTENT_URI, values); 
long rawContactId = ContentUris.parseId(rawContactUri); 

values.clear(); 
values.put(Data.RAW_CONTACT_ID, rawContactId); 
values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE); 
values.put(StructuredName.DISPLAY_NAME, "Mike Sullivan"); 
getContentResolver().insert(Data.CONTENT_URI, values); 

它顯示了在模擬器2.1,但是當我要通過手動刪除它「刪除聯繫人」選項,它不是從delete一個仿真器。

如果我編輯它的一些東西,那麼只有它刪除。

我該如何直接從菜單中刪除它?

在此先感謝...

+0

看一看:http://stackoverflow.com/questions/2400339/how-can-i-read-the-address-book-of-an-android-device-in-my-application/2400461# 2400461 – Schildmeijer 2010-03-27 08:58:49

回答

0

請問您可以使用下面的代碼添加聯繫人。這不會影響您的模擬器從菜單中刪除聯繫人而不進行編輯。

import android.provider.Contacts.People; 

public void addvaluestocontent() 
{ 
    ContentValues values = new ContentValues(); 

    values.put(People.NAME, "Abraham Lincoln"); 
    values.put(People._ID, "1"); 
    values.put(People.NUMBER, "23333"); 

    Uri uri = getContentResolver().insert(People.CONTENT_URI, values); 
} 
+0

是的,我已經在仿真器1.6上嘗試過,但它在工作,但People.CONTENT_URI在android 2.1中被depricated,這就是爲什麼我使用該代碼。我也在使用People.CONTENT_URI更新android 2.1中的聯繫人時遇到異常。 People.CONTENT_URI。 – Rishabh 2010-03-26 06:48:28

0

您必須另存一個字段,即「Given Name」或「Family Name」。您可以通過保存聯繫人手動進行測試。首先嚐試只保存號碼,然後用名稱和號碼保存聯繫人。

0

簡單,刪除.db文件刪除所有聯繫人。 android會自動創建新文件。對於.db的

路徑是: 數據/數據/ com.android.providers.contacts /數據庫/ contacts.db

0

使用此方法來檢查你的SDK版本,並獲取聯繫人的內容URI。之後,你可以插入新內容開放的聯繫人,

static 
{ 
int sdk=new Integer(Build.VERSION.SDK).intValue(); 

if (sdk>=5) { 
    try { 
    Class<?> clazz=Class.forName("android.provider.ContactsContract$Contacts"); 

    CONTENT_URI=(Uri)clazz.getField("CONTENT_URI").get(clazz); 
    } 
    catch (Throwable t) { 
    Log.e("PickDemo", "Exception when determining CONTENT_URI", t); 
    } 
} 
else { 
    CONTENT_URI=Contacts.People.CONTENT_URI; 
} 
} 

參考,CommonsWare Examples聯繫人內容URI。這可能會幫助你。