android.os.ServiceManager导入报错

android系统在对外发布时,会使用 @hide 隐藏一部分api,在做apk开发时,我们可以通过反射去调用这些已经隐藏的方法.

对于怎样通过反射去调用这些隐藏方法,这里不做解释.

本篇文章重点讨论的问题是

为什么在系统自带app中这些隐藏的方法又可以使用呢?

android.os.ServiceManager导入报错_第1张图片

如上图中SoundRecorder.java中 

import android.os.ServiceManager 可以正常使用

进一步对比之后在app编译.mk文件中我们找到了差异

LOCAL_SDK_VERSION

结论:如果在 .mk 编译时增加了上述 编译描述 apk中不能调用隐藏方法

API 5之后android系统中开始使用@hide

你可能感兴趣的:(android.os.ServiceManager导入报错)