Come creare un'app Android che riceva automaticamente le chiamate programmaticamente da numeri particolari e funzioni su tutte le versioni Android
Questo funziona da Android 2.2 a 4.0 e ora dopo aver aggiunto il try catch all'ultima linea funziona per 4.1.2 e 4.2 Francamente parlando non so come funziona ma funziona per me.
- Log.d(tag, "InSecond Method Ans Call");
- // 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));
- sendOrderedBroadcast(buttonUp, "android.permission.CALL_PRIVILEGED");
- Intent headSetUnPluggedintent = new Intent(Intent.ACTION_HEADSET_PLUG);
- headSetUnPluggedintent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
- headSetUnPluggedintent.putExtra("state", 0);
- headSetUnPluggedintent.putExtra("name", "Headset");
- try {
- sendOrderedBroadcast(headSetUnPluggedintent, null);
- } catch (Exception e) {
- e.printStackTrace();
- }
This is working for me in Android 4.1.2 as well as i have tested on 4.2 This still gives an exception which is handled.
Edit for End Call
Hope this helps all the people looking for total solution for answer and end call.
- /**
- * Reject button click listener will reject the incoming call.
- */
- private class RejectCallOnClickListener implements OnClickListener {
- @Override
- public void onClick(View v) {
- Log.d(tag, "OnRejectButton: " + "Reject OnClick");
- ignoreCall();
- exitCleanly();
- }
- }
- /**
- * ignore incoming calls
- */
- private void ignoreCall() {
- if (USE_ITELEPHONY)
- ignoreCallAidl();
- else
- ignoreCallPackageRestart();
- }
- /**
- * AIDL/ITelephony technique for ignoring calls
- */
- private void ignoreCallAidl() {
- try {
- // telephonyService.silenceRinger();
- telephonyService.endCall();
- } catch (RemoteException e) {
- e.printStackTrace();
- Log.d(tag, "ignoreCall: " + "Error: " + e.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- Log.d(tag, "ignoreCall" + "Error: " + e.getMessage());
Articoli simili
- Continuo a ricevere chiamate da diversi numeri casuali e il mio telefono non può bloccare le chiamate da numeri sconosciuti. Cosa posso fare?
- Come creare un hotspot mobile programmaticamente in Android e reindirizzare i suoi utenti a una pagina di login
- È possibile forzare gli utenti della mia app per Android di tutte le versioni ad aggiornare l'app?
- Come centrare un logo immagine programmaticamente sulla barra degli strumenti Android dal momento che XML non otterrà il lavoro correttamente