1

如何在 BroadcastReceiver 中挂钩 onReceive 方法?

public class RecentsActivity extends Activity
{
  mIntentReceiver = new BroadcastReceiver()
  {
    public void onReceive(Context context, Intent intent)
    {
      ...
    }
  };
}
4

1 回答 1

1

由于 BroadcastReceiver 是一个抽象类并且这是一个内联类定义,也许您可​​以通过以下方式检索此 BroadcastReceiver:

for(Class<?> cls : <package_name>.RecentsActivity.class.getDeclaredClasses()){
    if(BroadcastReceiver.isAssignableFrom(cls)){
        //hook onReceive
    }
}

否则尝试使用apktool检查应用程序的 smali 代码。

可能有一个名为RecentsActivity$N 的文件(其中N 是一个数字)。只需执行Class.forName("<packagename>.RecentsActivity$N")并挂钩此类 onReceive 方法即可。

祝你好运!

于 2014-12-10T14:36:05.147 回答