在振铃期间无法检索和存储呼叫者的详细信息

时间:2014-10-21 14:15:36

标签: java android

我试图将来电者的详细信息 - 姓名,号码和时间 - 存储在3个不同的arraylists中,而手机仍在响铃。如果呼叫者不在联系人中,则存储的名称为"名称不可用。"这是代码 -

        //code from the onReceive() function.
        getDetails(name, inNumber);
        telephonyService.endCall();
        openWhatsAppContact(inNumber, mContext);

        saveLogName.edit().putString("logName", TextUtils.join(",", logName)).apply();
        saveLogNumber.edit().putString("logNumber", TextUtils.join(",", logNumber)).apply();
        saveLogTime.edit().putString("logTime", TextUtils.join(",", logTime)).apply();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

void getDetails(String name, String number){
    if(name == "?"){
        logName.add("Name unavailable");
    }else{
        logName.add(name);
    }
    Log.d(TAG, TextUtils.join(",", logName));
    logNumber.add(number);
    Log.d(TAG, TextUtils.join(",", logNumber));
    Time now = new Time();
    now.setToNow();
    logTime.add(now.toString());
    Log.d(TAG, TextUtils.join(",", logTime));
}

在调用getDetails()时,没有任何反应,我知道这是因为函数中的日志语句。此外,getDetails()调用后的代码均未实现。我究竟做错了什么?有没有更好的方法去做我想做的事情?

AndroidManifest权限 -

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.CALL_PHONE" android:required="true" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />

1 个答案:

答案 0 :(得分:1)

你做错误的测试来比较字符串..你应该使用&#39; 相等&#39;而不是==

这样做:

 if(name!=null && name.equals.("?")){
        logName.add("Name unavailable");
    }else{
        logName.add(name);
    }