gpt4 book ai didi

android - 如何在Android中获取真实设备模型?

转载 作者:搜寻专家 更新时间:2023-11-01 09:05:38 25 4
gpt4 key购买 nike

例如,在我的 Xperia mini 手机上,

但我想为这款手机购买'Sony Ericsson xperia mini'

这可能吗?

最佳答案

对于那个特定的手机(也许还有许多其他索尼爱立信手机),您只能通过阅读您提到的系统属性来获取真实的设备名称:ro.semc.product.model

由于 android.os.SystemProperties 类对公共(public) API 是隐藏的,因此您需要使用反射(或执行 getprop ro.semc.product.model 命令和 grab its output ):

public String getSonyEricssonDeviceName() {
String model = getSystemProperty("ro.semc.product.model");
return (model == null) ? "" : model;
}


private String getSystemProperty(String propName) {
Class<?> clsSystemProperties = tryClassForName("android.os.SystemProperties");
Method mtdGet = tryGetMethod(clsSystemProperties, "get", String.class);
return tryInvoke(mtdGet, null, propName);
}

private Class<?> tryClassForName(String className) {
try {
return Class.forName(className);
} catch (ClassNotFoundException e) {
return null;
}
}

private Method tryGetMethod(Class<?> cls, String name, Class<?>... parameterTypes) {
try {
return cls.getDeclaredMethod(name, parameterTypes);
} catch (Exception e) {
return null;
}
}

@SuppressWarnings("unchecked")
private <T> T tryInvoke(Method m, Object object, Object... args) {
try {
return (T) m.invoke(object, args);
} catch (InvocationTargetException e) {
throw new RuntimeException(e);
} catch (Exception e) {
return null;
}
}

关于android - 如何在Android中获取真实设备模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12091767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com