首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从callLog中删除- Android 2.3.3

从callLog中删除- Android 2.3.3
EN

Stack Overflow用户
提问于 2012-06-04 21:44:38
回答 2查看 904关注 0票数 0

我使用以下代码从CallLog.Calls提供程序中删除Call

代码语言:javascript
复制
            String strNumber= "myPhoneNumber"

            String queryString= "NUMBER='" + strNumber + "'";

            Log.v("Number", queryString); 

            int i=context.getContentResolver().delete(CallLog.Calls.CONTENT_URI, queryString, null); 
            if(i<1) 

            {  
               // do my stuff
            } 

这段代码可以在Android2.2上运行,但不能在Android2.3.3上运行

LogCat中没有错误.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-04 21:48:45

在构建查询时,应该使用SDK提供的contract类(在您的情况下是CallLog.Calls )。

契约类用于将对象模型映射到数据库中相应的数据名称。当android团队需要更新数据库中的列名时,他们也会更新contract类,然后不需要对developpers进行任何更改。

然后尝试将查询字符串更改为:

代码语言:javascript
复制
String queryString = CallLog.Calls.NUMBER + "='" + strNumber + "'";

注意:单引号是必需的。

还要确保该编号与数据库编号完全匹配。

( +33678541236 != 0678541236 )

要确保删除正确的行,可以执行以下操作:

代码语言:javascript
复制
Cursor cursor = getContentResolver().query(CallLog.Calls.CONTENT_URI, null, CallLog.Calls.NUMBER + " = ? ", strNumber , "");
int idOfRowToDelete = cursor.getInt(cursor.getColumnIndex(CallLog.Calls._ID));
getContentResolver().delete(Uri.withAppendedPath(CallLog.Calls.CONTENT_URI, String.valueOf(idOfRowToDelete)), "", null);

(没有尝试,但应该可以进行小的修改)

票数 1
EN

Stack Overflow用户

发布于 2012-11-20 19:57:49

代码语言:javascript
复制
private void deleteNumber() {
            try {
                String strNumberOne[] = { "00577698160" };
                Cursor cursor = getContentResolver().query(CallLog.Calls.CONTENT_URI, null, CallLog.Calls.NUMBER + " = ? ", strNumberOne, "");
                boolean bol = cursor.moveToFirst();
                if (bol) {
                    do {
                        int idOfRowToDelete = cursor.getInt(cursor.getColumnIndex(CallLog.Calls._ID));
                        getContentResolver().delete(Uri.withAppendedPath(CallLog.Calls.CONTENT_URI, String.valueOf(idOfRowToDelete)), "", null);
                    } while (cursor.moveToNext());
                }
            } catch (Exception ex) {
                System.out.print("Exception here ");
            }
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10882402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档