문제

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?

도움이 되었습니까?

해결책

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

다른 팁

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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top