HarmonyOS鸿蒙Next中部分系统反射ConnectivityManager出现异常

HarmonyOS鸿蒙Next中部分系统反射ConnectivityManager出现异常 同样的代码,在HarmonyOS 3.0.0系统中,有的手机能反射成功,有的却出现异常:

java.lang.NoSuchFieldException: No field sCallbacks in class Landroid/net/ConnectivityManager; (declaration of 'android.net.ConnectivityManager' appears in /apex/com.android.tethering/javalib/framework-connectivity.jar)

反射代码如下:

val builder = StringBuilder()

try {
    val connectivityManager =
        PorosApplication.instance.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager

    val field = connectivityManager::class.java.getDeclaredField("sCallbacks")
    field.isAccessible = true

    val callbacks = field.get(null)

    val map: HashMap<NetworkRequest, ConnectivityManager.NetworkCallback> =
        callbacks as HashMap<NetworkRequest, ConnectivityManager.NetworkCallback>
    builder.append("callback size: ").append(map.values.size).append("\n")
    map.values.forEachIndexed { index, networkCallback ->
        builder.append(index).append(": ").append(networkCallback::class.java.name)
            .append("\n")
    }
} catch (e: Exception) {
    builder.append("exception: ").append(e).append("\n")
}
builder.append("end")

更多关于HarmonyOS鸿蒙Next中部分系统反射ConnectivityManager出现异常的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

您好,请您通过在线提单进一步解决: https://developer.huawei.com/consumer/cn/support/feedback/#/, 感谢您的反馈和支持。

更多关于HarmonyOS鸿蒙Next中部分系统反射ConnectivityManager出现异常的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,部分系统反射ConnectivityManager出现异常,可能是由于以下原因:

  1. 系统API变更,导致反射方法失效;
  2. 权限配置不足,无法访问相关API;
  3. 反射路径或方法名错误。

建议检查API文档,确保反射路径和方法名正确,并确认应用已获取必要权限。如问题持续,可考虑使用官方提供的API替代反射操作。

回到顶部