- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的目标是从通话记录中收集所有未知的电话号码。这可以通过以下代码实现:
private static final String[] CALLOG_PROJECTION = {CallLog.Calls._ID,
CallLog.Calls.CACHED_NAME, CallLog.Calls.NUMBER};
private static final String CALLOG_WHERE = CallLog.Calls.CACHED_NAME + " is null";
Cursor c = getContentResolver().query(CallLog.Calls.CONTENT_URI, CALLOG_PROJECTION,
CALLOG_WHERE, null, CallLog.Calls.DATE + " DESC");
这很好用,但是在我用未知号码创建联系人后,查询结果仍然包含未知号码。
如果我打开通话记录 Activity 窗口,我可以看到号码在几秒钟内变为联系人姓名。因此,该 Activity 会刷新 CACHED_NAME 列。
我的问题是,如何以编程方式刷新(实现)调用日志?
最佳答案
我着手解决这个问题是为了寻找优化您正在尝试做的事情的方法。我没有使用 cached_name,而是向电话内容提供程序查询每个号码以获取实际名称,但这会导致性能问题。
我注意到股票应用程序会在发生更改时刷新列表,就像您所做的那样。
我将在 Phones 表上实现一个 ContentObserver 并在发生这种情况时更新我的名字,如果可行我会发布。
我正在检查(Google 的)Contacts app source code他们基本上首先显示带有 CACHED_NAME 的列表,在显示列表后,他们检查(在后台)联系人详细信息是否有任何更改。如果有,他们会更新 CallLog 记录和列表。
基本上,我已经实现了类似的东西并且它有效。当您在后台检查更改时滚动列表时会出现一些性能问题,因为在 CallLog 中有很多重复的号码。所以基本上您只需要验证这些号码是否已经被 checkout 。
希望对您有所帮助!
关于android - 如何强制刷新 CallLog.Calls.CACHED_NAME 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3828930/
我编写了一个测试应用程序来读取通话记录。有 3 种类型的字段 -> incoming, outgoing, missed 在模拟器中,我在没有拿起电话后得到类型missed。如果我拒绝来电,我将获得
我在 RingCentral 中有一个问题:如果我们的帐户中有多个分机或用户,那么如何获取接到调用的分机或用户的详细信息。 特定用户或分机可以接听调用,但如何检查哪个用户/分机已接听电话?有什么API
我正在尝试使用 CallLog.Calls 内容提供程序获取通话记录。但是,我对需要进行的查询几乎没有迷惑。我能够进行查询并将结果加载到 ListView 中。但是查询返回所有类型的调用。 当然,我可
我正在尝试访问 android 应用程序中的通话记录,在这里我获得了所有通话详细信息,但我只想要唯一的通话详细信息,我不想要重复的值。 有什么方法可以在 android 中获取唯一的通话记录详细信息?
我正在编写一个将调用日志发送到服务器的程序,我创建了一个使用以下方法轮询电话状态的服务。此方法称为 onCreate。 private void pollForCallStatus() { t
我正在尝试接听我刚刚调用/接听的电话。为此,我使用 BroadcastReceiver 和 IntentServices。 事情是这样的: 在我的 BroadcastReceiver 类中,我检查状态
我有这段代码可以从 Android 的 CallLog 类中获取所有调用 private static ArrayList getCallDetails(Context context) {
我正在查询 CallLog.Calls 内容提供程序以获取通话详细信息。我做这样的事情 Cursor managedCursor = cr.query(CallLog.Calls.CONTENT_UR
有一个调用列表,包括开始时间、停止时间、持续时间、调用者和其他一些属性。现在我尝试从这个列表中可视化并发调用,但我不知道如何开始这个任务。我想在 .net C# 中实现这个任务。 第一个想法是接受每个
我正在向 CallLog.Calls 内容提供商查询通话详情。一切正常,除非我尝试按日期查询。也就是说,获取特定日期或日期范围等的通话详细信息。我知道日期存储的时间很长(毫秒格式),所以我尝试先转换日
我正在构建一个应用程序来监听 CallLog.Calls 内容提供程序中的更改。因此,此内容提供者的任何更改都会通知应用程序的观察者,即插入数据已更改。 但是有一个问题,应用程序在未运行时会收到通知,
我需要使用什么样的查询 “创建表 CallDB 为(从 CallLog.Calls 选择 *)” 我想将我处理的整个通话记录存储到另一个表中。因为我读到 calllog.calls 只有最后 500
Call Log Calls entry is this - Name Number TYPE date called - Jed
有人能告诉我 CallLog.Calls.TYPE 中 android 中的所有调用类型吗? 我发现传入 (1)、传出 (2) 和未接 (3)、4(语音邮件)、5(拒绝)和 6(拒绝列表)返回 1。
我正在想办法弄清楚 CallLog.Calls.NEW 表示。 文档说: Whether or not the call has been acknowledged (http://developer
您好,我正在使用 cordova 开发混合应用程序。我正在尝试使用 CallLog 插件访问 Android 手机中错过的最后一个电话。这是我尝试过的, 1.I installed the plugi
如果我尝试查询 CallLog.Calls,我有时会在某些设备上遇到 RuntimeException。我使用 contentProvider 查询 CallLog.Calls 以获取最后一次通话。
我想从通话记录中获取联系人照片(如果他有的话)。 现在我知道我可以获得号码,然后向联系人提供程序查询联系人 ID。 但是我想知道是否有更好的方法可以直接从 callLog.calls 表中获取照片 u
Cursor c = getContentResolver().query(CallLog.Calls.CONTENT_URI, null, null, null, null); for (i
我正在尝试制作一个 cordova 插件以在 Android 中获取电话历史记录。我已经按照本教程进行操作以获取插件的 Java 代码: http://www.androidhub4you.com/2
我是一名优秀的程序员,十分优秀!