标签: calllog

如何为呼叫日志实现ContentObserver

我想知道是否有办法知道呼叫的内容提供商是否已经改变.我的意思是,如果我拨打电话,或者我接听电话,它会返回一个"标志",表示已将新日志添加到呼叫日志中,或者Android存储有关呼叫的信息的位置.

因为,当我拨打电话时,Android会在内容提供商中存储号码,联系人姓名(如果存在),通话时间,持续时间等等.那么有没有办法捕获这个"标志",表示呼叫的内容提供商更大,我的意思是,在内容提供商CallLog.Calls上插入了新数据.

所以,我仍然对这个问题有很多怀疑.我不知道在哪里注册内容观察者.我的意图是,当CallLog内容提供程序中的某些内容发生更改时,将使用代码的insert方法.

我的意思是,除非将新数据添加到CallLog内容提供程序,否则代码将不会执行任何操作.如果已将某些数据添加到CallLog内容提供程序,则代码将查询新数据,然后将插入.我想这样做,因为没有内容观察者,应用程序在每次运行应用程序时已经插入的数据库中插入数据,得到了吗?

所以这是我的代码.如果有人可以告诉我放在哪里registerContentObserver()以及其他所需的东西.

public class RatedCalls extends ListActivity {

    private SQLiteDatabase db;
    private CallDataHelper dh = null;
    StringBuilder sb = new StringBuilder();
    OpenHelper openHelper = new OpenHelper(RatedCalls.this);

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Cursor cursor = getContentResolver().query(
                android.provider.CallLog.Calls.CONTENT_URI, null, null, null,
                android.provider.CallLog.Calls.DATE + " DESC ");

        dh = new CallDataHelper(this);
        db = openHelper.getWritableDatabase();

        startManagingCursor(cursor);
        int numberColumnId = cursor.getColumnIndex(android.provider.CallLog.Calls.NUMBER);
        int durationId = cursor.getColumnIndex(android.provider.CallLog.Calls.DURATION);
        int contactNameId = cursor.getColumnIndex(android.provider.CallLog.Calls.CACHED_NAME);
        int dateId = cursor.getColumnIndex(android.provider.CallLog.Calls.DATE);
        int numTypeId = cursor.getColumnIndex(android.provider.CallLog.Calls.CACHED_NUMBER_TYPE);

        Date dt …
Run Code Online (Sandbox Code Playgroud)

android calllog android-contentprovider

25
推荐指数
1
解决办法
3万
查看次数

如何以编程方式插入带有显示名称和照片的呼叫日志条目?

我能够以编程方式在Android调用日志中插入一个条目,其中包含数字,日期,持续时间和类型但我无法弄清楚如何同时包含照片,标签和名称?我添加的条目是针对具有完全相同编号的现有联系人.我注意到在摩托罗拉设备上,如果该号码与现有联系人相匹配,则显示名称和图片,但在我的HTC Incredible上缺少某些内容?

我做了以下..(不知道甚至尝试什么照片)

ContentValues values = new ContentValues();
values.put(CallLog.Calls.NUMBER, number);
values.put(CallLog.Calls.CACHED_NAME, name);
values.put(CallLog.Calls.CACHED_NUMBER_LABEL, label);
values.put(CallLog.Calls.DATE, date);
values.put(CallLog.Calls.DURATION, duration);
values.put(CallLog.Calls.TYPE, myCallType);
context.getContentResolver().insert(CallLog.Calls.CONTENT_URI, values);
Run Code Online (Sandbox Code Playgroud)

java android calllog phone-call android-intent

12
推荐指数
1
解决办法
2882
查看次数

android为呼叫日志添加号码

无论如何可以写入调用日志数据库?我的意思是我想将所选数字添加到通话记录中.我尝试在网上搜索教程但找不到任何...虽然有一件事是肯定的,但它可以完成.因为我已经看到很多在线应用程序,它们可以恢复通话记录,所以我想我们可以以某种方式修改通话记录数据库(但我怎么也不清楚).

我已经阅读过这篇文章,但它恰好被贴了很久才回来.

任何帮助将不胜感激!感谢名单!

android calllog

11
推荐指数
2
解决办法
2万
查看次数

如何以编程方式从android中删除调用日志?

如何从应用程序中删除/删除通话记录.我这样做

 this.getContentResolver().delete(CallLog.Calls.CONTENT_URI,null,null);
Run Code Online (Sandbox Code Playgroud)

它不起作用.

android calllog

11
推荐指数
4
解决办法
1万
查看次数

如何创建打开"呼叫日志活动"的Intent?

我想创建一个Intent,打开屏幕显示当前设备的通话记录?

我如何指定这样的意图?

android calllog android-intent

8
推荐指数
2
解决办法
8417
查看次数

在android中获取最后通话时长

我正在寻找一种最简单的方法来获得上次拨打号码的通话时长.因此,例如,如果我在拨打电话时打电话给我的妈妈,则会出现持续时间的通知.

我正在尝试以下但问题是它带有一个完整的持续时间列表.传入,传出,错过.

我如何区分它:

我尝试了以下方法:

 private void getCallDetails() {

    StringBuffer sb = new StringBuffer();
    Cursor cur = getContentResolver().query( CallLog.Calls.CONTENT_URI,null, null,null, android.provider.CallLog.Calls.DATE + " DESC");

    int number = cur.getColumnIndex( CallLog.Calls.NUMBER ); 
    int duration = cur.getColumnIndex( CallLog.Calls.DURATION);
    sb.append( "Call Details : \n");
    while ( cur.moveToNext() ) {
        String phNumber = cur.getString( number );
        String callDuration = cur.getString( duration );
        String dir = null;

        sb.append( "\nPhone Number:--- "+phNumber +" \nCall duration in sec :--- "+callDuration );
        sb.append("\n----------------------------------");
    }
    cur.close();
    call.setText(sb);
}
Run Code Online (Sandbox Code Playgroud)

android calllog

8
推荐指数
3
解决办法
2万
查看次数

Calllogs返回所有日志调用以及短信日志,如何只过滤呼叫日志?

我想要得到所有Call-Logs excluding SMS但我得到一个合并列表.

如何仅过滤呼叫的呼叫记录?

我正在使用以下代码.

String[] strFields = {
            android.provider.CallLog.Calls.NUMBER, 
            android.provider.CallLog.Calls.TYPE,
            android.provider.CallLog.Calls.CACHED_NAME,
            android.provider.CallLog.Calls.CACHED_NUMBER_TYPE,
            android.provider.CallLog.Calls.DATE
};
String strOrder = android.provider.CallLog.Calls.DATE + " DESC"; 

Uri calluri = Uri.parse("content://call_log/calls");
Cursor mCallCursor = getContentResolver().query(
            calluri,
            strFields,
            null,
            null,
            strOrder
);
Run Code Online (Sandbox Code Playgroud)

我正在使用Samsung Note 2进行测试.

android calllog

7
推荐指数
1
解决办法
2004
查看次数

6
推荐指数
0
解决办法
622
查看次数

是否有可能在Android中检测被拒绝的呼叫?

在我的应用程序中,当用户拒绝呼叫时拦截是很好的,即选择发送忙音.除了在有来电时收到通知,还有什么方法可以做到这一点吗?我没有在文档中找到任何关于此的内容.此信息是否存储在呼叫日志中,即我是否可以轮询呼叫日志以查看呼叫是否被拒绝或已应答?

android calllog

5
推荐指数
1
解决办法
6021
查看次数

你如何在android中清除你的通话记录历史记录?

如何在android中清除整个通话记录历史记录?目前我有这个代码,只能清除特定的通话记录

public void DeleteCallLogByNumber(String number) {   
    String queryString="NUMBER="+number; 
    this.getContentResolver().delete(CallLog.Calls.CONTENT_URI,queryString,null);
    }  
}
Run Code Online (Sandbox Code Playgroud)

android calllog phone-call

5
推荐指数
1
解决办法
3144
查看次数