Android 反射获取一个方法(方法的参数不一样)
private Method forget; private Method connect_netID; private Method connect_wifiConfig; private Method save; public Compatimpl17() { try { Class ActionListener = Class.forName("android.net.wifi.WifiManager$ActionListener", false, null); connect_netID = WifiManager.class.getDeclaredMethod("connect", int.class, ActionListener); connect_wifiConfig = WifiManager.class.getDeclaredMethod("connect", WifiConfiguration.class, ActionListener); forget = WifiManager.class.getDeclaredMethod("forget", int.class, ActionListener); save = WifiManager.class.getDeclaredMethod("save", WifiConfiguration.class, ActionListener); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } }
public boolean connect(int networkId) { try { connect_netID.invoke(getManager(), networkId, null); return true; } catch (Exception e) { e.printStackTrace(); } return false; }