作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想从 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;
}
}
但它正在删除整个联系人。
我应该使用什么来删除那个电话号码(而不是整个联系人)?
最佳答案
您使用 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);
关于android - 如何从android中的联系人中删除电话号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4792803/
我是一名优秀的程序员,十分优秀!