Я пытаюсь отклонить/ответить на вызов в android 2.3.3. Я попытался использовать ITelephony- endcall()
и answerRingingCall()
без успеха. Есть идеи?
Как отвечать на входящий вызов:
/**
* Emulates a headset button press to accept the call
*
* @param context
* A context to use
*/
public static void answerPhoneHeadsethook(Context context) {
// Simulate a press of the headset button to pick up the call
// SettingsClass.logMe(tag, "Simulating headset button");
Intent buttonDown = new Intent(Intent.ACTION_MEDIA_BUTTON);
buttonDown.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HEADSETHOOK));
context.sendOrderedBroadcast(buttonDown, "android.permission.CALL_PRIVILEGED");
// froyo and beyond trigger on buttonUp instead of buttonDown
Intent buttonUp = new Intent(Intent.ACTION_MEDIA_BUTTON);
buttonUp.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK));
context.sendOrderedBroadcast(buttonUp, "android.permission.CALL_PRIVILEGED");
}
Насколько мне известно, нет способа отклонить вызовы в 2. 3+ (можно было бы принять и отклонить вызов с помощью метода выше, но тогда вызывающий абонент должен его оплатить).
Необходимо отправить это намерение раньше!
Intent headSetUnPluggedintent = new Intent(Intent.ACTION_HEADSET_PLUG);
headSetUnPluggedintent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
headSetUnPluggedintent.putExtra("state", 1);
headSetUnPluggedintent.putExtra("name", "Headset");
// TODO: Should we require a permission?
sendOrderedBroadcast(headSetUnPluggedintent, null);
YOURACTIVITY.this
- и всегда лучше использоватьthis
чемgetApplicationContext