I am writing an app that is meant to be run during a call. After the user makes a call, and starts my app, I want my app to be able to know if the call is dropped from bad
The Android TelephonyManager class provides the getCallState() method, which will tell you the status of the current call. You'll be looking for a transition from CALL_STATE_OFFHOOK to CALL_STATE_IDLE.
Unfortunately, I don't see any methods in there to register a callback, so you may have to resort to polling.
http://developer.android.com/reference/android/telephony/TelephonyManager.html