我是开发人员并试图阻止Google Play开发者控制台中三星Galaxy Note4的特定型号,问题是我找不到设备型号与他们在控制台中写的内容之间的关联。
例如,我想知道从控制台中获取的以下列表中 SM-N910C 的转换内容:
任何想法如何做到这一点?手动或编程...... 我不认为它是http://developer.android.com/reference/android/os/Build.html
的一部分答案 0 :(得分:0)
所以这对你来说无疑是为时已晚,但我最近也有同样的问题,所以我决定研究它,并且我已经开发了一个工作理论。
我相信Google Play开发者控制台中显示的两个字符串是Android系统属性。用户友好的是“ro.product.model”,另一个是“ro.product.device”。这种映射似乎起作用,至少对我现在可用的设备起作用。如果有人发现这两个值与Google提供的值不符,请对此进行评论!
以编程方式阅读Android系统属性需要对本机代码进行JNI调用,如下所示:
package com.example;
class Native {
// pass a String[2]
public static native void readModelAndDevice(String[] _results);
}
-
#include <jni.h>
#include <sys/system_properties.h>
char model[256], device[256];
extern "C" JNIEXPORT void JNICALL com_example_Native_readModelAndDevice
(
JNIEnv * _java, jclass _class, jobjectArray _array
)
{
__system_property_get("ro.product.model", model);
__system_property_get("ro.product.device", device);
jstring jmodel = _java->NewStringUTF(model);
jstring jdevice = _java->NewStringUTF(device);
_java->SetObjectArrayElement(_array, 0, jmodel);
_java->SetObjectArrayElement(_array, 1, jdevice);
return;
}
之前从未在Android Studio中完成过JNI的人应该在尝试此示例之前完成JNI教程。