如何确定我的应用是否在安卓平台上运行

2022-09-01 14:21:01

我有一个应用程序,可以在几个运行Fedora或Android的移动设备上运行。为了整合我的代码库和发行版,我想确定我使用的是哪个操作系统。我尝试了System.getProperty(“os.name”),但这只返回“Linux”。在系统属性中是否有Android独有的东西?谢谢


答案 1

您可以检查几个属性。候选人是:

  • java.vendor.url --> http://www.android.com
  • java.vm.name --> Dalvik(我不知道,Fedora正在使用哪一个...)
  • java.vm.vendor --> The Android Project
  • java.vendor --> The Android Project

也许您想自己检查?

Properties p = System.getProperties();
Enumeration keys = p.keys();
while(keys.hasMoreElements()) {
   String key = (String) keys.nextElement();
   String value = (String) p.get(key);
   System.out.println(key + " >>>> " + value);
}

答案 2

我不了解Android,但是如果您没有找到一些唯一的系统属性,您有时可以识别系统(如果那里存在某些特定的类)。因此,您可以执行以下操作:

boolean isAndroid() {
    try {
        Class.forName("the class name");
        return true;
    } catch(ClassNotFoundException e) {
        return false;
    }
}

推荐