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