Block incoming calls

假如想象 提交于 2019-12-19 03:58:26

问题


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?


回答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




回答2:


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.



来源:https://stackoverflow.com/questions/2334465/block-incoming-calls

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!