这段代码为什么不能挂电话?解决办法

这段代码为什么不能挂电话?
我参照网上给的方法,做一个来电防火墙。
  原理:通过反射利用广播的形式拦截黑名单里的电话,在2.2的模拟器上跑完全可以,但是为什么在小米上不行呢?拦截部分代码如下:
 
#Code
 
package junsu.wen.PhoneWallPack;
 import java.lang.reflect.Method;
 import junsu.wen.BussinessLogic.PhoneWallManager;
 import com.android.internal.telephony.ITelephony;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.media.AudioManager;
 import android.telephony.TelephonyManager;
 public class Phonemanager extends BroadcastReceiver {
 
  private AudioManager mAudioManager;  
  private ITelephony mITelephony;  
  //来电防火墙 SQLite数据库存储
  private PhoneWallManager pwm=null;
   
 @Override
 public void onReceive(Context context, Intent intent) {
  //初始化数据
  Phone(context);
  String action = intent.getAction();
  //如果广播是关于电话号状态的
  if ("android.intent.action.PHONE_STATE".equals(action)) {
  //获取来电状态
  String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
  //获取来电号码
  String number = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
  // 电话正在响铃
  if (state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING)) {
  // 拦截指定的电话号码
  if (pwm.Exist(number)==true) { 
  // 先静音处理
  mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
  try {
  // 挂断电话
  mITelephony.endCall();
  } catch (Exception e) {
  e.printStackTrace();
  }
  // 再恢复正常铃声
  mAudioManager
  .setRingerMode(AudioManager.RINGER_MODE_NORMAL);
  }
  }
  }
 }

 private void Phone(Context context)
 {
  pwm=new PhoneWallManager(context);
  //利用反射获取隐藏的endcall方法  
  TelephonyManager mTelephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
  mAudioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE); 
  try {  
  Method getITelephonyMethod = TelephonyManager. class .getDeclaredMethod( "getITelephony" , (Class[]) null );  
  getITelephonyMethod.setAccessible( true );  
  mITelephony = (ITelephony) getITelephonyMethod.invoke(mTelephonyManager, (Object[]) null );  
  } catch (Exception e) {  
  e.printStackTrace();  
  }  
   
}
 }
 
#EndCode
 
猜测:1.小米隐藏了此API,反射不成功
  2.以上代码所使用API已过时
 这个问题昨晚困扰了我很久,能请官方的亲给一个答复吗??


------解决方案--------------------
小米手机的android版本是多少啊?我感觉是相关api已过时
------解决方案--------------------
再用其它 真机 调试下 貌似和小米本身有很大关系
------解决方案--------------------
小米是android2.3,正在弄2.4~ 你试试在2.3的模拟器上能不能跑~