gpt4 book ai didi

android - CallLog 未提供正确的 NUMBER 值(已拨号码)

转载 作者:行者123 更新时间:2023-11-30 04:23:00 25 4
gpt4 key购买 nike

我正在使用 CallLog,并将我的变量之一设置为用户调用的联系人的 CACHED_NAME。这工作正常,但如果用户调用的号码不在他们的联系人中,我希望它改为将变量设置为 NUMBER 值。出于某种原因,当我这样做时,我得到的结果是个位数整数,例如“1”或“7”。这是我的代码:

Uri allCalls = Uri.parse("content://call_log/calls");
String sortOrder = CallLog.Calls.DATE;
Cursor c = managedQuery(allCalls, null, null, null, sortOrder);

while (c.moveToNext()) {

int callType = Integer.parseInt(c.getString(c
.getColumnIndex(CallLog.Calls.TYPE)));
long date = c.getLong(c.getColumnIndex(Calls.DATE));
String col1;

if (callType == CallLog.Calls.OUTGOING_TYPE
&& date > resetDate) {

col1 = c.getString(c.getColumnIndex(Calls.CACHED_NAME));
// if there is no cached name, get the number
if (col1 == null) {
col1 = String.valueOf(c.getLong(c
.getColumnIndex(Calls.NUMBER)));
}

NUMBER 的值应该是用户调用的电话号码,我说得对吗?我知道除了最后一行我将 col1 设置为数字值外,一切都是正确的。有什么想法吗?

最佳答案

当您应该使用 getString 时,您正在使用 getLong 作为电话号码:

col1 = c.getString(c.getColumnIndex(Calls.CACHED_NAME));
// if there is no cached name, get the number
if (col1 == null) {
col1 = String.valueOf(c.getString(c
.getColumnIndex(Calls.NUMBER)));
}

关于android - CallLog 未提供正确的 NUMBER 值(已拨号码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8989158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com