Мое приложение должно проверить, есть ли доступный USB-интерфейс. Для этого он использует отражение для вызова getTetherableIfaces в ConnectivityManager.java.lang.NoSuchMethodException: getTetherableIfaces on Lollipop
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
Class cmClass = Class.forName(cm.getClass().getName());
Method method = cmClass.getDeclaredMethod("getTetherableIfaces");
method.setAccessible(true);
method.invoke(cm, args);
Я проверил это на LG Leon работает Android 5.0.1 и он терпит неудачу с java.lang.NoSuchMethodException.
Была ли эта функция удалена или изменена в Lollipop?
ConnectivityManager.class.getDeclaredMethod работал, спасибо. После отладки устройства я обнаружил, что context.getSystemService (Context.CONNECTIVITY_SERVICE) возвращает подкласс ConnectivityManager, а вызов метода getDeclaredMethod в этом экземпляре возвращает только методы подкласса, а не методы в ConnectivityManager. Вызов getMethod - правильное решение. – migueljuan