Sensor Fun: Location Based Services and GPS for Android

The Android SDK offers a nice API to receive information about available providers for location based services and get the current location and coordinates. In this short tutorial we’re going to build a small activity that displays a list of available location providers and shows the current position using GPS services. Example Application Create a new Android Project using ADT and your IDE with a package named com.hascode.android.location_app Add the permissions needed to the AndroidManifest.xml – it should look like this <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hascode.android.location_app" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".LocationActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="7" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission> <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission> </manifest> ...

May 30, 2010 · 4 min · 731 words · Micha Kops

Review: SCJP Sun Certified Programmer for Java 6 Study Guide

Short Facts: About 850 pages – heavy weight – use it for self defence! ;) Preparation material for the Sun Exam 310-065 (Sun Certified Java Programmer for Java SE 6) CD-Rom with a nice exam simulator included Authors: Kathy Sierry and Bert Bates ISBN: 978-0071591065 My two cents: My favorite author team strikes back – this time with a book for the certification exam to become a glorious “http://in.sun.com/training/certification/java/scjp.xml[Sun Certified Java Programmer]” for Java SE 6. I’ve read some other books from both authors before – especially from the “http://headfirstlabs.com/[Head First]” series from O’Reilly as they are “Head First Design Patterns”, “Head First Servlets and JSP” and last and least “Head First EJB”. Perhaps I am going to write a review for one of those, too – who knows.. ...

May 24, 2010 · 2 min · 325 words · Micha Kops

Dependency management in Grails 1.2

Sometimes I get the impression that there are many Maven haters in the Groovy/Grails community – now with version 1.2 of the Grails framework they are able to abandon the evil satanic Grails Maven Plugin and embrace the neverending joys of a slim, nice, sexy dependency resolution dsl .. here we go .. lets define some dependencies wheee … Our dependency configuration is defined in grails-app/config/BuildConfig.groovy as a property named grails.project.dependency.resolution: grails.project.dependency.resolution = { // here will be some dependencies } ...

May 23, 2010 · 2 min · 336 words · Micha Kops

Extending the Confluence Search Index

Developing plugins for the Confluence Wiki a developer sometimes needs to save additional metadata to a page object using Bandana or the ContentPropertyManager. Wouldn’t it be nice if this metadata was available in the built-in Lucene index? That is were the Confluence Extractor Module comes into play.. Overview An extractor allows the developer to add new fields to the lucene search index. Creating a new extractor is quite simple – just implement the interface com.atlassian.bonnie.search.Extractor or bucket.search.lucene.extractor.BaseAttachmentContentExtractor if you want to build a new file extractor. ...

May 23, 2010 · 4 min · 713 words · Micha Kops

A look at Maven 3 alpha

We are all waiting for a stable release of Maven3 with following updates .. faster, more performant .. save us time building our software and some precious memory ;) improved artifact resolution api and plugin api better osgi integration a few bugfixes no mixing of application dependencies and tooling dependencies though it does not matter that much to me: polyglot features .. e.g.: “Writing your pom files in Groovy” version-less parent elements for multi-module or multi-pom projects, no need to define the parent version in every submodule better artifact resolution, which dependency or pom supplied which artifact to the outcome .. got that information from: “Splitter from the world of Java” ...

May 22, 2010 · 2 min · 219 words · Micha Kops

Android Gestures

Since version 1.6 Android offers a library for recognition and handling of new gestures using a touch display. With the gesture builder it is possible to capture new gestures in the emulator. Gestures can be integrated into an activity like that. GestureLibrary gLib = GestureLibraries.fromRawResource(this, R.raw.spells); if (!gLib.load()) { finish(); } Furthermore we need a gesture overlay in the UI: <android.gesture.GestureOverlayView android:id="@+id/gestures" android:layout_width="fill_parent" android:layout_height="0dip" android:layout_weight="1.0" /> In the next step we implement an event handler for the gesture (Source: http://developer.android.com/resources/articles/gestures.html): GestureOverlayView gestures = (GestureOverlayView) findViewById(R.id.gestures); gestures.addOnGesturePerformedListener(this); public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) { ArrayList<prediction> predictions = mLibrary.recognize(gesture); if (predictions.size() > 0) { Prediction prediction = predictions.get(0); if (prediction.score > 1.0) { Toast.makeText(this, prediction.name, Toast.LENGTH_SHORT).show(); } } } ...

May 21, 2010 · 1 min · 197 words · Micha Kops

Creating a simple Gesture App with Android

The integration of gestures into your android app adds some nice functionality and is made very easy using Google’s GestureBuilder application and the integrated GestureLibrary and Gesture Overlay API – so let’s build a sample app. If you need some basic information regarding gestures on android first – take a look at this article. Creating a gesture library First you need to define the gestures that should be captured in the application later. For this reason there’s the GestureBuilder delivered with the Android SDK. You can find the app in the samples directory of your android sdk – e.g. <installation-directory>/android-sdk-linux_86/platforms/android-2.1/samples/GestureBuilder. ...

May 14, 2010 · 3 min · 635 words · Micha Kops

Playing around with QR Codes

Sometimes QR codes are a nice way to distribute information like calendar events, contact information, e-mail, geo-locations or internet addresses. In the following article we’re going to encode information to QR code images using the ZXing library and afterwards decode information from a given QR code. Finally we’re taking a look on online QR code generators and how to integrate the ZXing library in a Maven project. The ZXing Library Download the ZXing Libraries from http://code.google.com/p/zxing/downloads/list – the file name is ZXing-<version>.zip Unpack the downloaded archive somewhere Change to the extracted directory and run ant. If you don’t have JavaME installed – and you don’t have to for the samples below – run ant buildwithoutj2me – that will do the job Having compiled the libraries you’re now free to include the core.jar from zxing-<version>/core/ and the javase.jar from zxing-<version>/javase as dependency in your project ...

May 11, 2010 · 5 min · 1041 words · Micha Kops

Snippets: Getting License Information from the Confluence API

Sometimes one needs to look up license details of a running Confluence system .. perhaps for creating a commercial plugin or to display recommendations dependant from the license used. For this reason there are a few possibilities for receiving some license information from the Confluence API or the velocity context. Note: This article is outdated since the Atlassian Marketplace was launched and a shiny new licensing API was added. Until this article is updated I strongly recommend to take a closer look at the detailed information that Atlassian is providing in the Developer Documentation. ...

May 6, 2010 · 3 min · 637 words · Micha Kops

Sensor Fun: Creating a simple audio recorder/player

Sound recording and playback is really simple using the MediaRecorder and MediaPlayer classes .. see the example below .. Sample App First some layout .. a button to start/stop recording and a button to play the recorded stuff (main.xml): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/output" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="" /> <Button android:text="@+string/record" android:id="@+id/btRecord" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <Button android:text="@+string/play" android:id="@+id/btPlay" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> </LinearLayout> Adjusting the externalized strings in the strings.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Soundrecorder Tutorial</string> <string name="record">Record!</string> <string name="play">Play</string> </resources> ...

May 2, 2010 · 4 min · 766 words · Micha Kops