当电话还在响时,我正试图将来电者的详细信息——姓名、号码和时间——存储在3个不同的数组列表中。如果来电者不在联系人中,则存储的姓名为"姓名不可用"
//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" />
您进行了错误的测试来比较字符串。。您应该使用"equal"而不是==
这样做吗:
if(name!=null && name.equals.("?")){
logName.add("Name unavailable");
}else{
logName.add(name);
}