有人知道未接来电的意图是什么吗?实际上,我想在我的应用程序中未接来电和呼入电话时发送短信。
有人知道未接来电的意图是什么吗?实际上,我想在我的应用程序中未接来电和呼入电话时发送短信。
您需要使用ContentObserver。
public class MissedCallsContentObserver extends ContentObserver
{
public MissedCallsContentObserver()
{
super(null);
}
@Override
public void onChange(boolean selfChange)
{
Cursor cursor = getContentResolver().query(
Calls.CONTENT_URI,
null,
Calls.TYPE + " = ? AND " + Calls.NEW + " = ?",
new String[] { Integer.toString(Calls.MISSED_TYPE), "1" },
Calls.DATE + " DESC ");
//this is the number of missed calls
//for your case you may need to track this number
//so that you can figure out when it changes
cursor.getCount();
cursor.close();
}
}
从您的应用程序中,您只需要执行以下操作:
MissedCallsContentObserver mcco = new MissedCallsContentObserver();
getApplicationContext().getContentResolver().registerContentObserver(Calls.CONTENT_URI, true, mcco);
据我所知,没有针对未接来电的特定广播。
您可以监听ACTION_PHONE_STATE_CHANGED
广播,等到手机从EXTRA_STATE_RINGING
转换为EXTRA_STATE_IDLE
,然后尝试检查CallLog
内容提供程序以查看是否有未接来电。我尚未尝试过这种技术,但它可能有效。
cursor.close()
?因为ContentObserver
会自动关闭它,所以这不是必需的吗? - lock