Schreiben einer Library zur automatisch richtigen Initialisierung bei verschiedenen Betriebssystemen
(EN google-translate)
(PL google-translate)
Da in der Processing-ide selber es keine Möglichkeit gibt, Klassen anders als als innere Klassen der Sketch-Klasse zu schreiben und diese entweder Android ODER Android-VR ODER "PC-Java-Libraries" einbindet, kann man eine automatische Initialisierung nur durch Entwicklung einer eigenen Library realisieren. Dies geschieht hier mit BlueJ.
Hinweise:
  | 
userlib.zip - Beispiel
thbvr2.zip - Processing-Library in ~/sketchbook/libraries entpacken. Danach Beispiel dieser Library testen.
Schritt 1: Betriebssystem und Android-Version feststellen können
initializer.zip - BlueJ-Projekt mit der Klasse Systemanalyse.
Systemanalyse.isAndroid() liefert 0 bei Linux-PC/Windows/MAC und es liefert die Android-Version als einfache Zahl 1,2,3,... bei Android-Devices.
package info.kramann.vr;
import java.util.Properties;
import android.os.Build.VERSION;
public class Systemanalyse
{
    /**
     *  0==PC / Linux / Windows / MAC
     *  1..8 Android-Versionen
     */
    public static int isAndroid()
    {
          Properties prop = System.getProperties();
          String betriebssystem = prop.getProperty("os.name");
          String javaversion = prop.getProperty("os.version");
          String GENERIC = "generic";
          if(!betriebssystem.equals("Linux"))
               return 0;
          else if(javaversion.length()>=GENERIC.length() && 
                  javaversion.substring(javaversion.length()-GENERIC.length(),javaversion.length()).equals(GENERIC)
                 )
          {
              return 0; //generic Linux
          }
          else
          {
              //wird nur aufgerufen, wenn es ein Android-System ist!
              String version = VERSION.RELEASE;
              String v = version.substring(0,1);
              return (int)Double.parseDouble(v);
          }
    }
}
Code 0-1: Quelltext der Klasse Systemanalyse im Projekt thbvr2.zip