java.lang.NoSuchMethodException:Lollipop上的getTetherableIfaces

时间:2015-07-07 12:54:23

标签: java android android-5.0-lollipop

我的应用程序需要检查是否有可用的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中是否删除或更改了此功能?

1 个答案:

答案 0 :(得分:1)

根据http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.0.1_r1/android/net/ConnectivityManager.java#ConnectivityManager.getTetherableIfaces%28%29,该方法仍然存在。

也许你应该尝试ConnectivityManager.class.getDeclaredMethod("getTetherableIfaces")

您是否曾尝试查看连接管理器的所有元数据列表?你能告诉我们以下代码的日志吗?

Method[] methodArray = ConnectivityManager.class.getMethods();
for (Method method : methodArray) {
   Log.v(TAG, method.getName());
}