Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p><strong>AndroidManifest:</strong></p> <pre><code>&lt;receiver android:name=".PhoneStateBroadcastReceiver"&gt; &lt;intent-filter&gt; &lt;action android:name="android.intent.action.PHONE_STATE"&gt; &lt;/action&gt;&lt;/intent-filter&gt; &lt;/receiver&gt; </code></pre> <p><strong>Add following permission:</strong></p> <pre><code>&lt;uses-permission android:name="android.permission.READ_PHONE_STATE"&gt; &lt;/uses-permission&gt; </code></pre> <p><strong>PhoneStateBroadcastReceiver.java</strong> (refactored the code a bit)</p> <pre><code>package com.mobisys.android.salesbooster; import com.mobisys.android.salesbooster.database.HelperDatabase; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.preference.PreferenceManager; import android.provider.ContactsContract.PhoneLookup; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; import android.util.Log; public class PhoneStateBroadcastReceiver extends BroadcastReceiver { private static final String TAG = "PhoneStateBroadcastReceiver"; Context mContext; String incoming_number; private int prev_state; @Override public void onReceive(Context context, Intent intent) { TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE); //TelephonyManager object CustomPhoneStateListener customPhoneListener = new CustomPhoneStateListener(); telephony.listen(customPhoneListener, PhoneStateListener.LISTEN_CALL_STATE); //Register our listener with TelephonyManager Bundle bundle = intent.getExtras(); String phoneNr = bundle.getString("incoming_number"); Log.v(TAG, "phoneNr: "+phoneNr); mContext = context; } /* Custom PhoneStateListener */ public class CustomPhoneStateListener extends PhoneStateListener { private static final String TAG = "CustomPhoneStateListener"; @Override public void onCallStateChanged(int state, String incomingNumber){ if( incomingNumber != null &amp;&amp; incomingNumber.length() &gt; 0 ) incoming_number = incomingNumber; switch(state){ case TelephonyManager.CALL_STATE_RINGING: Log.d(TAG, "CALL_STATE_RINGING"); prev_state=state; break; case TelephonyManager.CALL_STATE_OFFHOOK: Log.d(TAG, "CALL_STATE_OFFHOOK"); prev_state=state; break; case TelephonyManager.CALL_STATE_IDLE: Log.d(TAG, "CALL_STATE_IDLE==&gt;"+incoming_number); if((prev_state == TelephonyManager.CALL_STATE_OFFHOOK)){ prev_state=state; //Answered Call which is ended } if((prev_state == TelephonyManager.CALL_STATE_RINGING)){ prev_state=state; //Rejected or Missed call } break; } } } } </code></pre> <p>Read more here, Source : <a href="http://mobisys.in/blog/2011/09/is-your-call-ended-on-android-phone/">http://mobisys.in/blog/2011/09/is-your-call-ended-on-android-phone/</a></p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload