QNA > C > Come Creare Un'app Android Che Riceva Automaticamente Le Chiamate Programmaticamente Da Numeri Particolari E Funzioni Su Tutte Le Versioni Android

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.

  1. Log.d(tag, "InSecond Method Ans Call"); 
  2. // froyo and beyond trigger on buttonUp instead of buttonDown 
  3. Intent buttonUp = new Intent(Intent.ACTION_MEDIA_BUTTON); 
  4. buttonUp.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK)); 
  5. sendOrderedBroadcast(buttonUp, "android.permission.CALL_PRIVILEGED"); 
  6.  
  7. Intent headSetUnPluggedintent = new Intent(Intent.ACTION_HEADSET_PLUG); 
  8. headSetUnPluggedintent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); 
  9. headSetUnPluggedintent.putExtra("state", 0); 
  10. headSetUnPluggedintent.putExtra("name", "Headset"); 
  11. try { 
  12. sendOrderedBroadcast(headSetUnPluggedintent, null); 
  13. } catch (Exception e) {  
  14. 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.

  1. /** 
  2. * Reject button click listener will reject the incoming call. 
  3. */ 
  4. private class RejectCallOnClickListener implements OnClickListener { 
  5. @Override 
  6. public void onClick(View v) { 
  7. Log.d(tag, "OnRejectButton: " + "Reject OnClick"); 
  8. ignoreCall(); 
  9. exitCleanly(); 
  10.  
  11. /** 
  12. * ignore incoming calls 
  13. */ 
  14. private void ignoreCall() { 
  15. if (USE_ITELEPHONY) 
  16. ignoreCallAidl(); 
  17. else 
  18. ignoreCallPackageRestart(); 
  19. /** 
  20. * AIDL/ITelephony technique for ignoring calls 
  21. */ 
  22. private void ignoreCallAidl() { 
  23. try { 
  24. // telephonyService.silenceRinger(); 
  25.  
  26. telephonyService.endCall(); 
  27. } catch (RemoteException e) { 
  28. e.printStackTrace(); 
  29. Log.d(tag, "ignoreCall: " + "Error: " + e.getMessage()); 
  30.  
  31. } catch (Exception e) { 
  32. e.printStackTrace(); 
  33. Log.d(tag, "ignoreCall" + "Error: " + e.getMessage()); 

Di Meghan Tazzara

Quanto è buono il MediaTek Helio G35? :: Quali sono alcuni dei principali miti (idee sbagliate) sui chipset MediaTek?
Link utili