在Android SDK中,是否有一种机制可以从您自己的应用中观察系统属性的更改?例如,我希望能够检测system.adb.tcp.port属性中的更改。
system.adb.tcp.port
x3naxklr1#
截至API 25,没有公共API。你需要深入挖掘那些只存在于系统中的内部函数。请参见sys/_system_properties.h中的__system_property_wait_any()。需要定义_REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_表明,在内部甚至不鼓励使用它。我不会在应用程序中使用它。AOSP的快速grep表明它只在测试代码中使用,因此似乎没有使用它的“友好”API。我认为你坚持使用轮询System.getProperty()。
__system_property_wait_any()
_REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
System.getProperty()
oogrdqng2#
我不认为存在这样做的机制,但您可以通过在Process中执行getprop来检索系统属性并检索其输出。或者试试这个链接:[对于System.getProperty()] http://developer.android.com/reference/java/lang/System.html#getProperty%28java.lang.String,%20java.lang.String%29
cwtwac6a3#
对于C/C++,请调用“android-base/properties.h”和libbase中定义的WaitForProperty。对于Java,请在Observable类中调用OnPropertyChangedCallback。
3条答案
按热度按时间x3naxklr1#
截至API 25,没有公共API。你需要深入挖掘那些只存在于系统中的内部函数。
请参见sys/_system_properties.h中的
__system_property_wait_any()
。需要定义_REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
表明,在内部甚至不鼓励使用它。我不会在应用程序中使用它。AOSP的快速grep表明它只在测试代码中使用,因此似乎没有使用它的“友好”API。
我认为你坚持使用轮询
System.getProperty()
。oogrdqng2#
我不认为存在这样做的机制,但您可以通过在Process中执行getprop来检索系统属性并检索其输出。
或者试试这个链接:[对于System.getProperty()] http://developer.android.com/reference/java/lang/System.html#getProperty%28java.lang.String,%20java.lang.String%29
cwtwac6a3#
对于C/C++,请调用“android-base/properties.h”和libbase中定义的WaitForProperty。
对于Java,请在Observable类中调用OnPropertyChangedCallback。