Kategorien
Android Java

Java Date zu Unix Timestamp Converter

Convert Date to Unix Timestamp (Long).

import java.util.Date;

public class DateHelper {   
    public static Long dateToTimeStamp(Date date) {
        Long millis = date.getTime();
        if(millis > 0)
        {
            return millis/1000;
        }
        else
        {
            return (long) 0;
        }
    }
}
Kategorien
Android Java

Andorid Sicherheit MD5 Hashing Class

Eine einfache Klasse, um MD5 Hashes mit Java zu erstellen.

Anmerkung: MD5 ist nicht mehr sicher, es sollte SHA1 verwendet werden. Wenn kein Weg drum herum führt, immer mit Salt verwenden.

public class Security {
    
    private static final String TAG = Security.class.getSimpleName();

    public static String getMd5Hash(String string) {
        String result = null;
        byte[] defaultBytes = string.getBytes();
        
        MessageDigest algorithm;
        try {
            algorithm = java.security.MessageDigest.getInstance("MD5");
            algorithm.reset();
            algorithm.update(defaultBytes);
            byte messageDigest[] = algorithm.digest();
                    
            StringBuffer hexString = new StringBuffer();
            for (int i=0;i<messageDigest.length;i++) {
                    String hex = Integer.toHexString(0xFF & messageDigest[i]); 
                    if(hex.length()==1)
                    hexString.append('0');
                    hexString.append(hex);
            }
            result = hexString.toString();
        } catch (NoSuchAlgorithmException e) {
            Log.e(TAG, "MD5 not available", e);
        }
        return result;                
    }
}
Kategorien
Android

Blackberry Android Apps in Eclipse testen

Das Blackberry Playbook bietet die Möglichkeit Android Apps zu starten. Über Eclipse ist ein einfaches Testen im Simulator möglich.

  1. Als erstes muss VMware und der der PlayBook Simulator installiert werden. Anleitung. Dazu muss unfreundlicherweise ein Installer Programm zusätzlich installiert werden (Akami NetSessions).
  2. Code Signing Keys beantragen/registrieren bei Blackberry (kann bis zu 2 Stunden dauern)
  3. Zertifikate in Eclipse anlegen mit Hilfe der Keys.
  4. Debug Token installieren auf dem Simulator
  5. Projekt in Android Api 2.3.3 ändern und Blackberry Struktur hinzufügen
  6. Hoffen, dass es läuft 🙂
Kategorien
Android

Android: Failed to install .apk on device (null)

Bei einer Fehlermeldung wie dieser:

Failed to install xxx.apk on device 'emulator-5554!
 (null)
 Launch canceled!

Kann man durch Neuanlegen eines neuen Virtual Devices (AVD) den Fehler beheben, alles andere hat bei mir nicht funktioniert.

Kategorien
Android Hardware

Samsung Galaxy S4 USB Verbindung und Debugging unter Windows 7

Normalerweise kann das Samsung Galaxy S4 (oder Samsung Galaxy S3 und S2) einfach durch Plug-and-Play unter Windows 7 installiert werden. Leider hat das bei mir nicht funktioniert. Wenn man das Galaxy S4 mit dem Computer verbinden will um mp3s oder Kontakte auf das Handy zu spielen, muss man das Programm Samsung Kies installieren.

Kategorien
Android

FTP Upload mit Android

Einbinden der benötigten Bibliothek von Apache mit Eclipse: Anleitung.

Code:

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.commons.net.ftp.FTPClient;

import android.util.Log;

import de.egraveyard.android.view.ItemUploader;

public class FtpUpload {
    private static final String TAG = ItemUploader.class.getSimpleName();

    String serverAdress = "ftp.lala.de";
    String userName = "ftpUser";
    String password = "lala";
    String serverDirectory = "/android";
    //String localFilePath = "/data/anr/traces.txt";
    //String remoteFileName = "traces2.txt";

    public boolean uploadImage(String localFilePath, String remoteFileName) {
        boolean result = false;

        FTPClient ftpClient = new FTPClient();

        try {

            ftpClient.connect(this.serverAdress);
            ftpClient.login(this.userName, this.password);
            ftpClient.changeWorkingDirectory(this.serverDirectory);
            ftpClient
                    .setFileType(org.apache.commons.net.ftp.FTP.BINARY_FILE_TYPE);
        } catch (IOException e) {
            Log.d(TAG,
                    "IOException ftp Client could not be established.controll Login, Server, Pw.");
        }
        Log.d(TAG, "FTP Server Response: " + ftpClient.getReplyString());

        BufferedInputStream buffIn = null;
        try {
            buffIn = new BufferedInputStream(new FileInputStream(localFilePath));
        } catch (FileNotFoundException e) {
            Log.d(TAG,
                    "FileNotFoundException: local File to be uploaded not Found: " + localFilePath);
        }
        ftpClient.enterLocalPassiveMode();

        try {
            result = ftpClient.storeFile(remoteFileName, buffIn);
        } catch (IOException e) {
            Log.d(TAG, "IOException: remote File could not be accessed");
        }
        try {
            buffIn.close();
        } catch (IOException e) {
            Log.d(TAG, "IOException: buffIn.close()");
        }

        try {
            ftpClient.logout();
            ftpClient.disconnect();
        } catch (IOException e) {
            Log.d(TAG, "IOException: ftpClient close/logout");
        }

        return result;
    }
}
Kategorien
Android

Android Quality Management mit Lint in Eclipse

Lint ist ein praktisches Tool um einen groben Überblick über die Qualität eines Android Projektes zu bekommen und unnötigen Code zu filtern.

Installation/Update über Eclipse

Lint kann über die Console oder über Eclipse gestartet werden. Ab Version ADT 16 (aktuell die neuste Version) ist Lint enthalten. Ein Update auf die neuste Version kann duchgeführt werden in Eclipse über: Help/Check for Updates.

Gestartet werden aknn Lint einfach über: Android Tools/Run Lint: Check for Common Errors

 Anwendungsfälle von Lint

Lint kann folgende Fehler recht zuverlässig finden:

  • nicht übersetzte Strings
  • hard kodierte Strings im Quelltext ausserhalb der strings.xml
  • invalides Layout
  • unbenutzte Ressourcen allgemein wie Bilder etc.
  • Accessibility Probleme: fehlende Bildbeschreibungen
  • unperformante Layout-Konstruktionen
  • fehlende Bilder in bestimmten Auflösungen (hdpi, mdpi, ldpi)

Tipps – Projekt startet nicht mehr

Lint kann so konfiguriert werden, dass bestimmte Fehler, wie z.B. fehlende Übersetzungen als Fehler(Error) gewertet werden. Die Konsequenz ist, dass der Compiler die App nicht kompiliert. Dies kann umgegangen werden oder noch verschärft werden über die Lint Einstellungen unter: Window/Preferences/Android/Lint Error Checking. Dort kann die Severity (deutsch: Strenge, Schwere) einer Fehlermeldung eingestellt werden.

Bspw. ist eine „Missing Translation“ am Anfang des Entwicklungsprozesses kein notwendiger Error, kann also auf Warning gesetzt werden.

Kategorien
Android

Android Sqlite Datenbank untersuchen auf dem Test Device

Um sich beim Testen die Datenbank seiner Android Test-App anzuschauen auf dem Test-Handy benötigt man Root-Rechte, ansonsten ist der Ordner data/data auf dem Handy nicht ansehbar. Dazu kann man das Programm SuperOneClick downloaden. Hier ist ein gutes Tutorial zum Rooten des Devices.

Danach kann man mit Eclipse mit dem Plug-in CellObject DevTools mit einer optischen Oberfläche wie in dem Video beschrieben über DDMS auf die Datenbank des Test-Device zugreifen. Für 9$ über Paypal und eine Registrierung kann man sich das Tool CellObject DevTools downloaden.

Mit CellObject DevTools kann man sowohl die SQLite Datenbank auf dem Device als auch die Datenbank im Simulator optisch darstellen lassen in Eclipse.

Nach dem Download einfach in den eclipse/plugin Ordner entpacken und Eclipse neustarten.

Kategorien
Android

Android Source Dateien in Eclipse installieren

Um in Eclipse die passenden Source Dateien zu installieren und einsehen zu können, müssen seit neustem nur ein paar kleine Schritte durchgeführt werden. Es ist keine aufwendige git Rumfurwerkerei nötig.

Wenn die Android Source Dateien nicht installiert sind, wird die folgende Fehlermeldung angezeigt.

Class File Editor

Source not found
The jar file classes.jar has no source attachment.
You can attach the source by clicking the Attach Source below:

Lösung:

Android Sources installieren

In Eclipse: Help ->Install New Software öffnen und die update Seite hinzufügen http://adt-addons.googlecode.com/svn/trunk/source/com.android.ide.eclipse.source.update/

und die Installation durchführen.

Source Folder in Eclipse hinzufügen

Die installierten Source Dateien liegen jetzt in eclipse\plugins\com.android.ide.eclipse.source_xxxxxxx und können via select from file ausgewählt werden. Dabei muss die sources.zip aus dem Ordner der verwendeten Android Version (z.B: Ordner „4“ für Android 1.6) ausgewählt werden.

Kategorien
Android

Tutorial Installation des Android SDKs mit Eclipse unter Windows 7

Für die Android Entwicklung unter Windoes sollte bevorzugt Eclipse als IDE benutzt werden, weil Netbeans doch einige Probleme in der Vergangenheit mit dem Andorid SDK hatte.

Installation von Eclipse

  1. Download von Eclipse (Eclipse IDE for Java Developers)
  2. entpacken des Archivs. Dabei ist darauf zu achten, dies nicht in das Programm-Verzeichnis von Windoes zu tun, weil dort die Schreibrechte Probleme machen bei der Installation des ADT Plugins
  3. Installation von Java Runtime Enviroment
  4. starten der eclipse.exe und es läuft (ohne Installation)
  5. Testprojekt anlegen und ausführen: Bsp: main.java:
public class main {
    public static void main(String[] args) {
        System.out.println("Hello word");
    }
}