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;
        }

 

posted @ 2017-12-22 15:33  万物为铜  阅读(4659)  评论(0编辑  收藏  举报