Как определить, работает ли мое приложение на Android?

У меня есть приложение, которое работает на нескольких мобильных устройствах, работающих под управлением Fedora или Android. Чтобы консолидировать свою кодовую базу и распределение, я хотел бы определить, на какой ОС я работаю. Я попробовал System.getProperty («os.name»), но это просто возвращает «Linux». Есть ли что-то уникальное для Android в свойствах системы? благодаря

Solutions Collecting From Web of "Как определить, работает ли мое приложение на Android?"

Есть несколько свойств, которые вы могли бы проверить. Кандидаты:

  • Java.vendor.url -> http://www.android.com
  • Java.vm.name -> Dalvik (я не знаю, какой Fedora использует …)
  • Java.vm.vendor -> Проект Android
  • Java.vendor -> Проект Android

Может быть, вы хотите проверить сами?

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); } 

Я не знаю Android, но если вы не найдете уникального системного свойства, вы можете иногда идентифицировать систему, если там существует определенный класс. Таким образом, вы можете сделать следующее:

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

Вот код, который я написал, используя информацию с этой страницы, если вы хотите скопировать-вставить:

 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; } 

Благодарю.