Wer richtige Apps für Android Geräte programmieren möchte, der verwendet am besten die offizielle Software, das Android Studio. Falls noch nicht installiert, benötigt man zusätzlich das Java Development Kit (JDK). Die nötigen Links und eine genaue Anleitung gibts hier.
Nach erfolgreicher Installation habe ich gleich mal die ersten Fehlermeldungen bekommen. Etwas mit dem Namen 'gradle' war unzufrieden. Wenn ich vor dem Start von Android Studio alle anderen Programme beende, funktioniert es. Könnte am Alter und dem begrenztem Arbeitsspeicher meines Rechners liegen.

Das nötige Know-How zum Programmieren habe ich aus dem Buch 'Android App Entwicklung für Dummies'. Damit wird man Schritt für Schritt an die Sache heran geführt. Ich habe mich durch die ersten Beispiel Apps gearbeitet und anschließend nur noch Sachen nachgeschlagen, die für meine IR_BT App relevant sind.

Wie schon beim App Inventor kann man auch hier den Aufbau einer App grob in zwei Bereiche teilen. Zunächst einmal das Layout. Es bestimmt die grafische Oberfläche der App. Das Layout wird in XML programmiert. Man kann aber auch vom Texteditor in einen Designer wechseln. Dort werden viele verschiedene Elemente angeboten und man kann diese per drag and drop zur Oberfläche hinzufügen.
Anfangs habe ich oft zwischen Design und Text hin und her gewechselt, um die Elemente und Funktionen kennen zu lernen. Ich finde alle Bezeichnungen einigermaßen logisch und man hat den Dreh recht schnell raus.



Tja und dann kommt noch die Programmierung der Logik. In Java. Ich muss zugeben, dass sich da noch einige Fragezeichen verstecken. Ganz so simpel und logisch wie die Mikrocontroller Programmierung in C ist das nicht. Letztendlich konnte ich alle Ideen umsetzen und meine App funktioniert. Aber den Jungs von der IT Abteilung möchte ich mein Gewurschtel lieber nicht zeigen. Wahrscheinlich ist es angebracht auch hier erst einmal ein Buch zum Java lernen in die Hand zu nehmen.



Für meine IR_BT App habe ich aus den Vorlagen die Blank Activity mit Swipe Views ausgewählt. Damit kann man verschiedene Oberflächen (also Fernbedienungen) durch seitliches Wischen aufrufen. Der Programm Code dafür ist schon fertig. Ich habe ihn für mein Zweck angepasst und mich für vier Oberflächen entschieden. Die drei rechten sind die Nachbildungen meiner Fernbedienungen.
Wenn ich die App starte, verbindet sich das Handy automatisch per Bluetooth mit meiner IR_BT Steuerung. Sobald die Tasten erscheinen steht die Verbindung und das System ist einsatzfähig. Das dauert nicht länger als das Öffnen jeder anderen App.
Die Startseite ist die linke Oberfläche. Dort habe ich alle Tasten zusammen gefasst, die ich oft verwende. Hinter vielen dieser Tasten verbirgt sich ein Makro. Das bedeutet, dass gleich mehrere Befehle auf einmal gesendet werden. Ein gutes Beispiel dafür sind die unteren Programm Tasten. Wenn ich auf die RTL Taste drücke, wird automatisch 1, 0, OK und Info gesendet. Der Fernseher schaltet auf Sender 10 und zeigt an, was da gerade läuft.



Nachdem meine IR_BT Steuerung endlich so funktioniert, wie ich mir das schon lange vorgestellt habe, verwende ich sie auch regelmäßig. Außerdem kucken die Leute ziemlich beeindruckt, wenn man mit dem Smartphone die Multimedia Anlage steuert. Nur ab und zu liegt die originale Fernbedienung dann doch näher am Sofa, als das Handy. ;-)




Hier noch ein paar Hilfen zur App Programmierung:

Bluetooth Verbindung
Die ersten 5 Schritte wie beschrieben, dann Connecting as a client.
Universale UUID: 00001101-0000-1000-8000-00805F9B34FB

Aktion beim Drücken einer Taste
in layout.xml   android:onClick="click_1"
in main.java   public void click_1 (){ do something }

Bildschirm immer an - in layout_main.xml
android:keepScreenOn="true"

Screenrotation deaktivieren - in AndroidManifest.xml
android:screenOrientation="portrait"
android:configChanges="orientation"

Titelleiste ausblenden - in styles.xmtl
<item name="android:windowNoTitle">true</item>

Delay Funktion in Millisekunden
try {Thread.sleep(i);} catch (InterruptedException e) {}






Belichter

Ätzanlage

Netzteil

-----

ISP Programmer

Test-Boards

-----

7-Segment

DCF77

IR_BT
  - Software
  - Hardware
  - Hardware 2
  - App Inventor
  - Android App

Servo & LMA-Box

LMA2 Quantec

LCD Interface

IR Alarm

Klingel Code