LiDaming_and 2012-12-29 03:09 采纳率: 100%
浏览 5222
已采纳

在android中如何从联系表中删除个人的电话号码?

我想从android数据库中删除电话号码。为此我设置了以下的查询语句:

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;
    }    
}

这个方法把所有的联系人的电话号码全删除了。
我想实现的是删除某一个人的联系方式,不是所有人的联系方式?如何实现呢?

  • 写回答

2条回答 默认 最新

  • yongyong_21 2013-01-08 03:23
    关注

    你使用ContentResolver方法,就会删除所有的联系人。应该使用 ContactsContact API.
    参考:http://developer.android.com/reference/android/provider/ContactsContract.Data.html

    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);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?