Block incoming calls
Asked Answered
P

2

3

my VoiP-client would like to block all incoming calls to the phone while my own call is taking place. Is it possible to do this somehow?

Pixie answered 25/2, 2010 at 14:6 Comment(0)
P
1

Not with the current SDK no, You can monitor incoming calls and give the user the option to answer with your application instead of the native app

Platitude answered 25/2, 2010 at 15:53 Comment(2)
How is the user offered to choose app to answer with, trough an intentchooser? Thanks for you help.Pixie
Yep you can register to listen for that intent and start your application on that intentPlatitude
B
4

Yes you can block incoming calls. Using this code

 String phonestate = bundle.getString(TelephonyManager.EXTRA_STATE);

 try 
    {
        if (TelephonyManager.EXTRA_STATE_RINGING.equalsIgnoreCase(phonestate)) 
        {
            try 
            {
                TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
                Class c = Class.forName(tm.getClass().getName());
                Method m = c.getDeclaredMethod("getITelephony");
                m.setAccessible(true);
                telephonyService = (com.android.internal.telephony.ITelephony) m.invoke(tm);
            }
            catch (Exception e) 
            {
                e.printStackTrace();
            }

            if (prefStatus != null) 
            {
                if (count == 1) 
                {
                    telephonyService.endCall();
                    String prefLoginemail = myloginpref.getString("emailid", null);
                    System.out.println(printdata + " prefLoginemail :: "+ prefLoginemail);

                    Global.mNotificationManager = (NotificationManager) mxcontext.getSystemService(Context.NOTIFICATION_SERVICE);
                    notifyDetails = new Notification(com.CellPhoneTerror.R.drawable.icon1,"CellPhoneTerror!", System.currentTimeMillis());
                    myIntent = PendingIntent.getActivity(mxcontext, 0, new Intent(mxcontext, clsHomePage.class), 0);

                    notifyDetails.setLatestEventInfo(mxcontext,"You Got a Call from Blocked Number.", "",myIntent);
                    notifyDetails.flags |= Notification.FLAG_AUTO_CANCEL;
                    Global.mNotificationManager.notify(Global.SIMPLE_NOTFICATION_ID,notifyDetails);

                }
            }
        }
        if (prefIncomingBlock.equals("true")) 
        {
            if (TelephonyManager.EXTRA_STATE_IDLE.equalsIgnoreCase(phonestate)) 
            {
                if (count == 0) 
                {
                    System.out.println("if Cellphoneterror:"+ Global.clsIncomingNum);
                    Intent block = new Intent(context, dialogbox1.class);
                    block.setFlags(intent.FLAG_ACTIVITY_NEW_TASK);
                    context.startActivity(block);
                }
            }
        }
    } 
    catch (Exception e) 
    {
        e.printStackTrace();
    }

Thanks.

Bobbery answered 27/7, 2011 at 8:55 Comment(3)
-1 I think it is pretty that the asker wanted to know how to do this.Stockdale
Sorry friends, But my network was down so I was not able to put example here. Anyway Thanks for comment.Bobbery
How can you avoid the delay and sometimes one or two rings before its blocked?Therefor
P
1

Not with the current SDK no, You can monitor incoming calls and give the user the option to answer with your application instead of the native app

Platitude answered 25/2, 2010 at 15:53 Comment(2)
How is the user offered to choose app to answer with, trough an intentchooser? Thanks for you help.Pixie
Yep you can register to listen for that intent and start your application on that intentPlatitude

© 2022 - 2024 — McMap. All rights reserved.