我的应用程序需要检查是否有可用的USB tetherable接口。为此,它使用反射来调用ConnectivityManager上的getTetherableIfaces。
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);
我已经在运行Android 5.0.1的LG Leon上对此进行了测试,但是它失败并出现了java.lang.NoSuchMethodException。
Lollipop中是否删除或更改了此功能?
答案 0 :(得分:1)
也许你应该尝试ConnectivityManager.class.getDeclaredMethod("getTetherableIfaces")
。
您是否曾尝试查看连接管理器的所有元数据列表?你能告诉我们以下代码的日志吗?
Method[] methodArray = ConnectivityManager.class.getMethods();
for (Method method : methodArray) {
Log.v(TAG, method.getName());
}