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
Java

Subclipse SVN für Eclipse Installation

  1. Help/Install new Software…
  2. Add Repository: http://subclipse.tigris.org/update_1.8.x
  3. alles auswählen, installieren
  4. Repository Dateien auschecken: File/Import -> SVN/checkout Projects from SVN -> create new repository location -> url eingeben
Kategorien
Amazon MWS

Cloudfront String could not be parsed as XML

If you are using the Cloudfront library for Amazon Advertising API and you get the following error message, contact me I can help you with this issue. I got this error when I tried to retrieve amazon.fr (france) data.

exception 'Exception' with message 'String could not be parsed as XML' in cloudfusion\sdk.class.php:1209
Stack trace:
#0 \sdk.class.php(1209): SimpleXMLElement->__construct('parse_callback('pas_authenticate('ItemLookup', Array)
#3 amazonProductAdvertisingApi.php(233): AmazonPAS->item_lookup('B000091xxx', Array)
#4 amazonProductAdvertisingApi.php(90): amazonProductAdvertisingApi->getAsinData()
#5 amazonProductAdvertisingApi.php(65): amazonProductAdvertisingApi->getResult('FR')
#6 \index.php(248): amazonProductAdvertisingApi->getResults()
#7 {main}EOL#0 cloudfusion\sdk.class.php(1209): SimpleXMLElement->__construct('parse_callback('pas_authenticate('ItemLookup', Array)
#3 amazonProductAdvertisingApi.php(233): AmazonPAS->item_lookup('B000091xxx', Array)
#4 amazonProductAdvertisingApi.php(90): amazonProductAdvertisingApi->getAsinData()
#5 amazonProductAdvertisingApi.php(65): amazonProductAdvertisingApi->getResult('FR')
#6 eansuche\index.php(248): amazonProductAdvertisingApi->getResults()
#7 {main}
Kategorien
Amazon MWS

MarketplaceWebService Error

Wer bei Benutzung der MarketplaceWebService Bibliothek für PHP den folgenden Fehler bekommt bei Benutzung von MarketplaceWebService_Model_GetReportListByNextTokenRequest:

Fatal error: Call to undefined method MarketplaceWebService_Model_GetReportListByNextTokenResult::getReportInfo() in xxx

Der ist auf einen Fehler in den Beispiel Projekten von Amazon reingefallen.

Richtig ist:

$reportInfoList = $getReportListByNextTokenResult->getReportInfoList();

Falsch und seit Jahren von Amazon publiziert:

$reportInfoList = $getReportListByNextTokenResult->getReportInfo();

 

Kategorien
Hardware Webdeveloper Tools

Hotkeys und Fusspedal Unterstützung beim Programmieren mit Netbeans

Um Zeit zu sparen und nervige Standard-Tastaturbefehlen und -ketten zu automatisieren, habe ich mir einen USB Fußschalter mit 3 Tasten gekauft und bin sehr zufrieden.

Damit ist es möglich einfache Shortkeys auf die 3 Fusspedale zu legen.

Ich will im folgenden Zeigen, wie man mit Netbeans folgenden Ablauf auf eine Taste/eine Pedale legen kann:

  1. Speichern der Datei in Netbeans: STRG+S
  2. Wechseln zum Firefox
  3. Aktualisieren des Firefox: F5

Kategorien
Diverses

Die Veränderung der Unternehmenskommunikation im Web 2.0 am Beispiel von Twitter

In diesem Aufsatz wird beschrieben, wie sich die Unternehmenskommunikation  (Public Relations) veränder hat im Web2.0 am Bespiel von Microbloggin Diensten wie Twitter.

Download als .pdf: Die Veränderung der Unternehmenskommunikation im Web 2.0 am Beispiel von Twitter

Zusammenfassung:

Die klassische Unternehmenskommunikation muss sich in Zukunft neuen Herausforderungen und Möglichkeiten stellen. Die einstige von Unternehmen kontrollierte und beeinflusste herrschende Konsumentenmeinung befindet sich in einem Prozess der Demokratisierung. Die Unternehmen büßen Teile ihrer Kontrolle ein und die Stimme des Konsumenten erhält eine  wichtigere Rolle in der Gesellschaft. Das alte Gesetz, das die Meinung meist von einigen Personen kontrolliert und verändert werden kann, weicht dem der Meinung der Mehrheit in den Web2.0 Medien.

Damit gehen neue Möglichkeiten und Risiken einher, denen sich den Unternehmen stellen müssen. Es reicht nicht mehr aus frontale Kommunikation zu betreiben, sondern es müssen die neuen Formen der Kommunikation, zu der auch die direkte Kommunikation mit der Microblogging Community zählt, betrieben werden.

Download als .pdf: Die Veränderung der Unternehmenskommunikation im Web 2.0 am Beispiel von Twitter

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.