能不能把隐藏的方法显示出来?
我正在开发一个用于录制和播放音频的Android应用。为了生成更友好的日志信息,我想使用来自类 android.media.AudioFormat 的这个方法:
/** @hide */
public static String toLogFriendlyEncoding(int enc) {...}
它返回正在使用的编码常量的“人类可读”描述。然而,由于该方法被注解为 @hide,Android Studio在编译我的代码时会抛出错误:
Log.d(TAG, "encoding: " + AudioFormat.toLogFriendlyEncoding(AUDIO_ENCODING));
是否可以以某种方式推翻这个 @hide 注解?我真的看不出将这个方法复制粘贴并在本地重新实现有什么意义。它也不会带来安全或其他风险,创建一个本地副本可能会导致随时间与实际实现不同步的代码……
解决方案
Can one overrule this @hide-annotation somehow?
你也许可以通过反射来绕过它。这取决于它是否在受限名单中。
creating a local copy might create code that gets out-of-sync with the actual implementation over time
在时间的推移中,创建本地副本可能会导致代码与实际实现不同步
另一方面,你假设这个未公开且不可用的方法在所有设备上都存在,但情况未必如此。设备制造商经常修改Android的非公开API。到底有多少设备对这个特定方法进行了改动,谁也说不准。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。