【发布时间】:2016-03-27 09:15:19
【问题描述】:
是否有一种机制可以在 Android SDK 中从您自己的应用程序中观察系统属性的变化?
例如,我希望能够检测到 system.adb.tcp.port 属性的变化。
【问题讨论】:
是否有一种机制可以在 Android SDK 中从您自己的应用程序中观察系统属性的变化?
例如,我希望能够检测到 system.adb.tcp.port 属性的变化。
【问题讨论】:
从 API 25 开始,没有用于此的公共 API。您需要深入挖掘仅存在于运行系统的内部功能。
参见sys/_system_properties.h 中的__system_property_wait_any()。定义_REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_ 的需要表明,内部甚至不鼓励使用它。
我不会在应用程序中使用它。 AOSP 的快速 grep 表明它仅用于测试代码,因此似乎没有使用它的“友好”API。
我认为您在投票System.getProperty() 时遇到了麻烦。
【讨论】:
我认为不存在执行此操作的机制。但是您可以通过在 Process 中执行 getprop 来检索系统属性并检索其输出。
或试试这个链接:[for System.getProperty()] http://developer.android.com/reference/java/lang/System.html#getProperty%28java.lang.String,%20java.lang.String%29
【讨论】:
对于C/C++,请调用“android-base/properties.h”和libbase中定义的WaitForProperty。
对于 Java,请在 Observable 类中调用 OnPropertyChangedCallback。
【讨论】: