As of the Android L NDK, __system_property_get
is removed (https://groups.google.com/a/chromium.org/forum/#!topic/chromium-reviews/keQP6L9aVyU). Is there another API in the Android L NDK to access the same property values?
Asked
Active
Viewed 7,104 times
7

aschmied
- 908
- 2
- 10
- 26
3 Answers
7
I went with popen
as detailed in the answer at https://stackoverflow.com/a/478960/2833126 to run getprop
. Something like
std::string command = "getprop ro.product.model";
FILE* file = popen(command.c_str(), "r");
if (!file) {
// error
}
// read the property value from file
pclose(file);
1
You can use __system_property_read
/ __system_property_read_callback
(__ANDROID_API__ >= 26
). I couldn't find official doc about it but it's well documented in system_properties.h
.
I know it's not for Android L
but I think a more modern solution should be written.
#include <sys/system_properties.h>
const prop_info* pi = __system_property_find("persist.sys.locale");
std::string prop; // Not local, it will be modified from a callback.
if (pi != nullptr) {
__system_property_read_callback(
pi,
[](void* cookie, const char*, const char* value, unsigned int) {
*prop = value;
},
&prop);
}

Vincent LE GARREC
- 371
- 2
- 11
0
what about
androidVersion = system("getprop ro.build.version.release");
printf("%s", androidVersion.c_str());

jerryurenaa
- 3,863
- 1
- 27
- 17