Android Indoor Maps

Back in May of this year, Google released an update to their Play Services. Up until then, it wasn't possible to use all the features of indoor maps found in Google Maps for Android. Strangely, iOS has had this feature for some time now. One of the those features was being able to manipulate the floor picker. To start using indoor maps properly, you will need to create a new project and configure it to use Google Play Services.

Objective-C Classes

If you’ve been programming in one of the more popular object oriented programming languages such as C++ or Java, Objective-C may be a bit confusing at first. With Objective-C, you send objects messages opposed to calling methods. With C++ and Java, calling a method name means that, in most cases, it is bound to a section of code in the target class by the compiler. However, with Objective-C, the target of the message is resolved at runtime.

Android NavigationDrawer with Sliding Tabs

Both the NavigationDrawer and NavigationTabs are great for allowing a user to navigate your app. There are times that you may need to use them in conjunction and possible. However, you can not use the ActionBar Navigation Drawer and ActionBar Navigation Tabs together. In order to use tabs, you must implement them manually in your fagments. 


Backing Up with NFS and rsync

Assumptions & Prerequisites

  • Fresh install of RedHat/CentOS/Fedora on the server
  • minimal install profile
  • Security is not taken into account


A system running RedHat/CentOS/Fedora, but any Linux distribution will work with the proper modifications. Just to get something up and running, I did a minimal install of CentOS 6.4. The CentOS server will have a partition mounted at /mnt/backup which will be shared via NFS.

Android Parcelable Objects

If you need to pass data from one Intent to another, you need to use Bundles. Passing basic data types such as int, boolean, byte, byte arrays, etc are easily accomplished by calling their respective method; putBoolean() for example. You can even pass ArrayLists, but only if the ArrayList contains basic data types. In the event that you want to pass an ArrayList containing objects of a custom class, you must implement Parcelable on that class. Looking at the PhoneNumber class:

Android SQLite Database

For my number blocker application, I needed a way to save numbers that are to be blocked and would remain if the phone was rebooted or the application closed. To do this, I chose to store the information in a SQLite database. The first thing I needed to do was define a class that held information for each number in the databse, which can also be reused through out the application.

Reading Android's Call Log

I'm currently working on an application that allows a person to block phone numbers whether it be an actual phone call or a SMS/MMS message. One of the features of this app is the ability to retrieve all the incoming and outgoing calls then compiling a list. From that list a user can select a number and black list it. 


In order to read the call log, you must specify the android.permission.READ_CONTACTS in your AndroidManifest.xml file: