2011-01-25 8 views
4

アンドロイドデータベースから削除したい(携帯電話番号など)そのため、私は次のようにクエリを渡していますアンドロイドの連絡先から電話番号を削除するにはどうすればよいですか?

public class ContactDemo extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     String number = "2222"; 
     Long id = getID(number); 
     int i = getContentResolver().delete(RawContacts.CONTENT_URI, RawContacts._ID+"=?", new String[]{id.toString()}); 
     System.out.println("Deleted"+i); 
    } 
    public Long getID(String number){  

     Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number)); 
     Cursor c = getContentResolver().query(uri, new String[]{PhoneLookup._ID}, null, null, null); 
     while(c.moveToNext()){ 
      return c.getLong(c.getColumnIndex(PhoneLookup._ID)); 
     } 
     return null; 
    }  
} 

ただし、連絡先全体が削除されています。

その電話番号(連絡先全体ではない)のみを削除するにはどうすればよいですか?

答えて

6

ContentResolverのdeleteメソッドを使用して、連絡先全体を削除します。この連絡先の電話番号を空の値に更新するには、ContactsContact APIを使用する必要があります。

http://developer.android.com/reference/android/provider/ContactsContract.Data.html

接触生idとPhone.CONTENT_ITEM_TYPEを提供することにより、あなただけのこの連絡先に属する電話番号を要求し、それらのすべてを削除することができます。

ArrayList<ContentProviderOperation> ops = Lists.newArrayList(); 
ops.add(ContentProviderOperation.newDelete(Data.CONTENT_URI) 
      .withSelection(Data._ID + "=? and " + Data.MIMETYPE + "=?", new String[]{String.valueOf(contactId), Phone.CONTENT_ITEM_TYPE}) 
      .build()); 
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 
関連する問題