【发布时间】:2013-03-22 11:09:06
【问题描述】:
我正在尝试从通话记录中获取最近未接来电的号码。我使用了下面的代码,我想让它在后台运行,现在我把它写成我的 mainActivity 类中的一个方法,当一个呼叫移动到未接来电日志时,这个函数应该可以工作。如何使它成为可能请帮助
public void SendSMStoMissedCall()
{
String[] strFields = {android.provider.CallLog.Calls.CACHED_NAME,
android.provider.CallLog.Calls.NUMBER,android.provider.CallLog.Calls.DATE,
android.provider.CallLog.Calls.TYPE};
String strOrder = android.provider.CallLog.Calls.DATE + " DESC";
Cursor mCallCursor = getContentResolver().query(android.provider.CallLog.Calls.CONTENT_URI,strFields, null, null, strOrder);
if (mCallCursor.moveToFirst())
{
do
{
boolean missed = mCallCursor.getInt(mCallCursor.getColumnIndex(CallLog.Calls.TYPE)) == CallLog.Calls.MISSED_TYPE;
if (missed)
{
String name = mCallCursor.getString(mCallCursor.getColumnIndex(CallLog.Calls.CACHED_NAME));
number = mCallCursor.getString(mCallCursor.getColumnIndex(CallLog.Calls.NUMBER));
String time = mCallCursor.getString(mCallCursor.getColumnIndex(android.provider.CallLog.Calls.DATE));
Log.d("PhoneLog", "You have a missed call from " + name + " on " + number + " at " + time);
String ContactName = objUtility.getContactNameFromNumber(number);
SendMessage(number);
getCurrentLocation();
}
}
while (mCallCursor.moveToNext());
}
}
【问题讨论】:
-
那么什么不起作用?您希望代码的哪一部分工作但没有工作?
-
@Calvin 我想在后台进行这项工作,当有新的未接电话来电时,我想获取号码
-
我的意思是哪个部分不起作用?你得到一个空游标?还是光标为空?或游标返回错误的值?如果我不知道出了什么问题,我无能为力。
-
@Calvin 这会起作用,我只是想让它像服务一样工作。我可以实现“phonestatelistener”吗?
标签: android android-intent android-service