2

我找到了以下代码:

try{ 
   Object service  = getSystemService("statusbar");
   Class<?> statusbarManager = Class.forName("android.app.StatusBarManager");
   Method expand = statusbarManager.getMethod("expand");
   expand.invoke(service);
 }
 catch(Exception ex){           

 }

它适用于扩展状态栏,但我想要访问的方法不是扩展,它的“禁用”和禁用将 int 作为参数。有人可以告诉我在以这种方式调用方法时如何包含参数。

4

1 回答 1

4

invoke需要额外的参数作为参数,所以你可以这样调用它:

Class<?> statusbarManager = Class.forName("android.app.StatusBarManager");
Method disable = statusbarManager.getMethod("disable", Integer.TYPE); //takes an int
disable.invoke(service, 2); //calls disable(2)

注意:正如评论中指出的那样,这是一个坏主意。

于 2012-08-31T13:57:07.147 回答