我有一个应用程序,可以在几个运行Fedora或Android的移动设备上运行。为了整合我的代码库和发行版,我想确定我使用的是哪种操作系统。我尝试过System.getProperty( "Linux“),但返回的结果是”Linux“。在系统属性中有没有Android独有的东西?谢谢
发布于 2010-12-23 22:33:02
我不知道Android,但如果你找不到一些独特的系统属性,你有时可以识别系统,如果那里存在某个特定的类。因此,您可以执行以下操作:
boolean isAndroid() {
try {
Class.forName("the class name");
return true;
} catch(ClassNotFoundException e) {
return false;
}
}
发布于 2011-07-29 20:31:23
以下是我使用此页面中的信息编写的一些代码,以防您想要复制-粘贴:
private static YLogger ylogger;
public static YLogger getLogger() {
if (ylogger == null){
// need to find a new logger. Let's check if we have Android running
if (System.getProperty("java.vm.name").equalsIgnoreCase("Dalvik")){
ylogger = new AndroidLogger();
ylogger.d("YLoggerFactory", "Instantiating Android-based logger");
} else {
// fallback option, system logger.
ylogger = new SystemLogger();
ylogger.d("YLoggerFactory", "Instantiating System-based logger");
}
}
return ylogger;
}
发布于 2018-08-14 12:40:45
已定义的系统属性列表如下:https://developer.android.com/reference/java/lang/System#getProperties()
我正在使用
boolean android = "The Android Project".equals(System.getProperty("java.specification.vendor"));
https://stackoverflow.com/questions/4519556
复制相似问题