android-mqtt-quickstart

by bytehala

Android Studio port of the Eclipse paho MQTT sample project.

134 Stars 56 Forks Last release: Not found 39 Commits 1 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

:warning: **Please feel free to create issues if it does not run for you.

android-mqtt-quickstart Build Status

Android Studio port of the Eclipse paho MQTT sample project.

Environment Tested On

  1. OpenJDK Java 11 by Amazon (sdkman 11.0.6-amzn)
  2. Pixel XL API 29 emulator
  3. Android Studio 3.6.2

I am maintaining this on my own, and as such am unable to test on multiple devices and environments.

You can support me buy contributing code, filing bugs, asking/answering questions, or buying me a coffee.

Buy Me a Coffee at ko-fi.com

Getting Started

  1. Download the code
    git clone http://www.github.com/bytehala/android-mqtt-quickstart
  2. Open the project in Android Studio
  3. Build and run it.

Using the Sample App

To test the app, you need an MQTT broker. Luckily, HiveMQ provides a free one which we can use for testing. HiveMQ broker

After successfully connecting, you can start subscribing and publishing to topics using the app. Subscribing

Success

More About MQTT

MQTT is a messaging protocol which has applications in the Internet of Things (IoT). This sample project uses Eclipse's open-source implementation called the Paho Project. If you go to the original source where I lifted this project from, there are non-Android sample projects that use the Paho library.

This youtube video explains the MQTT for IoT at a very basic level.

Learn more about the other MQTT options such as QOS, Last Will, etc from this really helpful 12 part series by HiveMQ http://www.hivemq.com/blog/mqtt-essentials/

Create Your Own App

All you need is an MQTT broker.
This app is just piggybacking on HiveMQ's free broker.

Take note of the dependencies in this project.

org.eclipse.paho.android.service
and
org.eclipse.paho.client.mqttv3
depend on the old android-support-v4, specifically the LocalBroadcastManager class.

Maybe we can migrate to mqttv5 using the plain Java library at https://github.com/eclipse/paho.mqtt.java

The eclipse sources can be found at: https://github.com/eclipse/paho.mqtt.android

Honestly, when I made an MQTT app for a client, I just built on top of this sample project.

Word of Warning

This app was made in 2015-2016, and is a demo of how to use the Eclipse MQTT Libraries, not how to code in Android.

Architecture components are a thing now, and I strongly advise the use of ViewModel and LifecycleHook.

Work In Progress

Definitely look at the "jetpacknav" branch which aims to transform everything into a Single-Activity application, which has been the Android recommendation since 2018. It's currently a work in progress but a clear example of how to transform legacy apps from the old Android paradigm (multiple-Activity) to the newer ones (single-Activity Jetpack).

MQTT V3 vs V5

This project uses MQTT v3 and I will be looking into using v3 and v5 in the near future.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.