gpt4 book ai didi

android - 有没有办法在 Android 应用程序中访问 android.net.EthernetManager?

转载 作者:搜寻专家 更新时间:2023-11-01 08:37:54 24 4
gpt4 key购买 nike

有没有办法访问android.net.EthernetManager在 Android 应用程序中?Class.forName("android.net.ethernet.EthernetManager") 和 Class.forName("android.net.EthernetManager") 都会生成 ClassNotFoundException。

最佳答案

似乎android.net.EthernetManager 是一个隐藏类,Javadoc 标记为@hide。您可以使用制作的定制 SDK 平台访问它 here ,并且您不需要对设备进行 root。

Android Hidden API library是一个修改后的jar文件,它结合了来自Android SDK的android.jar和来自真实设备的framework.jar。这个 jar 使您能够在开发中使用 Android 内部/隐藏的 API。

什么是 Android 内部和隐藏 API?内部 API 位于 com.android.internal 包中,可在 framework.jar 来自真实 Android 设备的文件,而隐藏的 API 位于具有 @hide Javadoc 属性的 android.jar 文件中。虽然类和方法是public,但您不能访问它。您可以从这个包中使用漂亮的方法和资源。我假设这是一个 API,并将其称为隐藏 API。了解有关隐藏 API 的更多信息 here .

所以,看看这个 @hide 标记:

enter image description here

此类在 API 级别 22 及更高级别上可用。但是,定制的 API 有局限性。 Android Hidden API 不适用于 Lollipop 5.1.1 (API 22) 和 Marshmallow 6.0 (API 23),因为我找不到任何拥有此设备的人。如果你有,请从位于/system/framework/framework.jar的物理设备上传framework.jar文件到here .我会做一个新的!

另一个限制

我还没有解释隐藏 API 的另一个限制。当您使用此隐藏 API 的某些功能、方法、资源或类时,这些功能、方法、资源或类仅在特定 API 级别可用,您的应用程序只能在适当设备的 API 级别内访问它们。例如,您在应用程序中使用 android.net.EthernetManager,您必须将目标和编译 SDK 设置为 android-22(因为此类仅在 API 上可用22 级及以上)。在 API 级别 22 及更高级别的设备上运行应用程序后,不会显示任何错误。但是,一旦您在 API 级别 21 或更低级别上运行该应用程序,就会抛出一个错误,例如 java.lang.NoClassDefFoundError,因为 android.net.EthernetManager 类是仅为 API 22 及更高版本构建。

关于android - 有没有办法在 Android 应用程序中访问 android.net.EthernetManager?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35215533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com