2010-02-25 474 views
3

我的VoiP客户端希望在我自己的通话发生时阻止所有来电。以某种方式可以做到这一点吗?阻止来电

回答

1

与当前SDK没有,您可以监控来电,并给用户提供应用程序,而不是本机应用程序

+0

用户如何选择应用程序来回答,通过intentchooser?感谢您的帮助。 – pgsandstrom 2010-02-26 12:49:43

+0

是的,你可以注册听取该意图,并启动你的应用程序 – 2010-02-26 13:50:11

4

是可以阻止来电接听选项。使用此代码

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(); 
    } 

谢谢。

+0

-1我认为提问者想知道如何做到这一点很好。 – Elemental 2011-07-27 09:19:18

+0

对不起朋友,但我的网络被关闭了,所以我无法在这里举例。无论如何感谢评论。 – anddev 2011-07-27 12:52:30

+0

你怎么能避免延迟,有时一个或两个环被阻塞之前? – powder366 2014-07-06 15:40:31