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 に答える