AndroidC语⾔读取系统属性
⽤ Qt Creator 写⼀个 Android 程序,需要读取 DNS 。C 语⾔怎么读呢,研究了⼀下,原来在 Android 的 C 库⾥,就有读取系统属性的⽅法。⽤ objdump 看了⼀下 libc.so ,到了其中的函数。如下:
000095f0 g    F .text 00000014 __system_properties_init
00009604 g    F .text 00000014 __system_property_find
00009618 g    F .text 00000014 __system_property_find_nth
0000962c g    F .text 00000014 __system_property_get
system的头文件
00009640 g    F .text 00000014 __system_property_read
00009654 g    F .text 00000014 __system_property_wait
头⽂件是 system_properties.h ,在 usr/include/sys⽬录下⾯。
__system_property_get 可以⽤来获取⼀个属性值,函数原型如下:
/* Look up a system property by name, copying its value and a
** \0 terminator to the provided pointer.  The total bytes
** copied will be no greater than PROP_VALUE_MAX.  Returns
** the string length of the value.  A property that is not
** defined is identical to a property with a length 0 value.
*/
int __system_property_get(const char *name, char *value);
读取 DNS 的代码如下:
char buf[PROP_VALUE_MAX];
__system_property_get("net.dns1", buf);
__system_property_get("net.dns2", buf);
读取其他属性类似,设置的话可以查看 system_properties.h 看函数⽤法。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。