[AndroidSnippets] Kamerabilder schießen und speichern

Hallo,

in meiner Reihe AndroidSnippets werde ich euch nützliche Klassen zur Verfügung stellen, die euch euren Arbeitsalltag erleichtern werden als Entwickler.

Heute: Schnell ein Foto mit der Kamera schießen

Gefunden auf flickr.com, von  Dan H
Gefunden auf flickr.com, von Dan H

In vielen Apps braucht man die Möglichkeit Fotos zu schießen. Heute zeige ich euch, wie ihr das recht schnell implementieren könnt.

[AndroidSnippets] Kamerabilder schießen und speichern weiterlesen

[AndroidSnippets] XML Backup der SQLITE Datenbank anlegen und wiederherstellen

Hallo!

in meiner neuen Reihe AndroidSnippets werde ich euch nützliche Klassen zur Verfügung stellen, die euch euren Arbeitsalltag erleichtern werden als Entwickler.

Heute: Die App Datenbank in einer XML Datei sichern und wiederherstellen

Welcher Androidentwickler kennt das nicht. Man speichert viele Daten in einer sqlite Datenbank und der Nutzer wechselt sein Gerät und beschwert sich über die verlorenen Daten.
Eine Backuplösung muss also her. Und weil der Nutzer ungern auf Google vertraut oder die Datenbank zu groß ist, muss man sich selber darum kümmern.
Daher stelle ich euch meine Klasse zum sichern und wiederherstellen heute zur Verfügung.
Die Klasse erzeugt im BACKUP_PATH eine database.xml, welche die Struktur enthält.
Um Sachen wie ProgressDialog und weiteres vorgehen wie Datei per Mail verschicken müsst ihr euch selber kümmern.
Auch die Fehlerbehandlung liegt in eurem Ermessen.

[AndroidSnippets] XML Backup der SQLITE Datenbank anlegen und wiederherstellen weiterlesen

Ein Pluginsystem mit Paketserver in PHP – Teil 3

Ein Pluginsystem mit Paketserver in PHP – Teil 3

Nachdem wir nun wissen, wie ein Plugin aufgebaut ist und wir wir es im Frontend verwenden, müssen wir uns mit der Frage beschäftigen, wie wir die Plugins im Backend administrieren.

Generell ist meine Überlegung, dass das ACP eine PHP Datei hat, die je nach übergebener ID aus dem Pluginordner die Backenddateien nachlädt.

Ein Beispiel: Im ACP gibt es eine Datei plugin_list.php.
Rufen wir diese Datei auf, so erscheint eine Liste mit Plugins, wie hier:

Pluginliste

Von hier aus, kann man die Plugins administrieren.
Dazu ruft man dann plugin_verwalten.php?appid=X auf, dann erscheint, je nach Plugin, die entsprechenden ACP Seite.

Um  die plugin_list.php anzuzeigen, ist nicht viel nötig.
Der nötige SQL Befehl lautet:

SELECT * FROM plugins ORDER BY id;

Geben wir die Ergebnisse einfach als eine normale Liste aus:


$query = mysql_query("SELECT * FROM plugins ORDER BY id;");

$AppsNum = mysql_num_rows();
 $AppsTd="";
 while ($AppsArray = mysql_fetch_object($query)) {
 $color ="red";

 if ($AppsArray->activate=="1" || $AppsArray->activate=="true") { $color = "lightgreen"; }
 $AppsTd .= '<tr style="background-color:'.$color.';"><td style="width:20%;">'.$AppsArray->name.'</td><td "width:5%;">'.$AppsArray->version.'</td><td "width:45%;">'.$AppsArray->desc.'</td><td "width:35%;"><a href="plugin_verwalten.php?appid='.$AppsArray->id.'">Administrieren</a></td></tr>';
 }

 echo 'Installierte Erweiterungen:<br><div class="cel" style="height:auto;">
 <table style="width:100%;"><tr style="border: 1px black solid;"><td>Name</td><td>Version</td><td>Beschreibung</td><td>Optionen</td></tr> '.$AppsTd.'</table></div><br /><br />';

 

Die plugin_verwalten.php ist recht einfach aufgebaut, sie prüft nur, ob die angegebene ID konform und in der Datenbank existent ist und includiert dann die hinterlegten Dateien:


<?php

 /*
 Checke die Paratemter in der GET
 */

 if (!isset($_GET['appid']) OR !is_numeric($_GET['appid'])){
 trigger_error("Die Variable \"appid\" ist entweder nicht übergeben worden oder entspricht nicht den Vorraussetzungen.",E_USER_ERROR);
 }

$appid = $_GET['appid'];

 /*
 Schauen wir mal nach der und laden alle Daten in ein array() ^^
 Und natürlich wider zählen
 */

 $query = mysql_query("SELECT * FROM plugins WHERE ID = ".$appid);

 $row = mysql_fetch_object($query);

 $num = mysql_num_rows();

 /*
 Wenn jetzt $num = 0 oder > 1 ist, dan stimmt was nicht
 */

 if ($num != 1) {
 trigger_error("Die ID ist nicht vorhanden und/oder mehrmals vergeben. Dies macht eine eindeutige Identifikation unmöglich.",E_USER_ERROR);
 }

 /*
 So, dann schauen wir mal OptionFile an und laden die Datei hier rein^^
 */
 define("apppath",$row->path);
 require_once(apppath."/cp/index.php");

 /*
 Für mich ist die Sache damit erledigt :)
 */

Okay, nun wissen wir, wie wir die Backenddateien verwalten.

Im nächsten Teil installieren wir die Plugins via einem Updateserver.

Zur Hauptseite