android中未接来电的广播接收器

Suj*_*jit 6 android broadcastreceiver android-intent

有谁知道未接来电的意图是什么.实际上我想在我的应用程序中发送未接来电和接听电话的短信.

Joe*_*Joe 11

您需要使用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();
    }
}
Run Code Online (Sandbox Code Playgroud)

从您的应用中,您只需要这样做:

MissedCallsContentObserver mcco = new MissedCallsContentObserver();
getApplicationContext().getContentResolver().registerContentObserver(Calls.CONTENT_URI, true, mcco);
Run Code Online (Sandbox Code Playgroud)


Com*_*are 10

AFAIK没有针对未接来电的特定广播.

你可以看的ACTION_PHONE_STATE_CHANGED节目,等到从手机转移EXTRA_STATE_RINGINGEXTRA_STATE_IDLE,然后尝试检查CallLog的内容供应商,看看呼叫被错过.我没有尝试过这种技术,但它可能有效.