在android中阻止没有单个铃声的电话号码

时间:2014-11-18 07:05:29

标签: java android

我想创建一个用于阻止电话号码的Android应用。 但问题是:= 如果我阻止一个号码,它会响一次然后结束通话。 如何在没有一枚戒指的情况下做到这一点?

我的代码如下: -

public void blockCall(Context c, Bundle b)
    {
      TelephonyManager telephony = (TelephonyManager) 
      c.getSystemService(Context.TELEPHONY_SERVICE);  
      try {
       Class cls = Class.forName(telephony.getClass().getName());
       Method m = cls.getDeclaredMethod("getITelephony");
       m.setAccessible(true);
       telephonyService = (ITelephony) m.invoke(telephony);
       //telephonyService.silenceRinger();
       telephonyService.endCall();
      } catch (Exception e) {
       e.printStackTrace();
      }
        }

1 个答案:

答案 0 :(得分:0)

在您正在收听来电的广播接收器中添加此方法 -

TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
   try {
     Class c = Class.forName(tm.getClass().getName());
     Method m = c.getDeclaredMethod("getITelephony");
     m.setAccessible(true);
     telephonyService = (ITelephony) m.invoke(tm);
     Bundle bundle = intent.getExtras();
     String phoneNumber = bundle.getString("incoming_number");
     Log.d("INCOMING", phoneNumber);
     if ((phoneNumber != null)) { 
        telephonyService.endCall();
        Log.d("HANG UP", phoneNumber);
     }

   } catch (Exception e) {
     e.printStackTrace();
   }

这对我来说很好。