# MavSDK Android

**URL:** <https://discuss.px4.io/t/mavsdk-android/21242>\
**Category:** MAVSDK\
**Created:** [March 2, 2021, 6:01am UTC](https://discuss.px4.io/t/mavsdk-android/21242 "2021-03-02T06:01:34Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![3ric](https://discuss.px4.io/letter_avatar_proxy/v4/letter/3/ad7895/32.png) [@3ric](https://discuss.px4.io/u/3ric)\
**Post date:** [March 2, 2021, 6:01am UTC](https://discuss.px4.io/t/mavsdk-android/21242/1 "2021-03-02T06:01:34Z")

</div>

Hi,

I am currently trying to build an Android application that works like a rwmote control with two joysticks. I am a bit confused about the setup I need. What are the following parts for and which one of them do I need:  
•MavRouter  
•MavProxy  
•MavSDK-Server  
•MavSDK-Java

The goal is to have an application that can reolace the remote control.

Thanks in advance.

---

<div class="post-metadata">

**Author:** ![Katawan](https://discuss.px4.io/user_avatar/discuss.px4.io/katawan/32/5544_2.png) [@Katawan](https://discuss.px4.io/u/Katawan)\
**Post date:** [March 2, 2021, 8:45am UTC](https://discuss.px4.io/t/mavsdk-android/21242/2 "2021-03-02T08:45:01Z")

</div>

You are working with a PX4 flight controller right ?

You run MAVSDK-Java on Android.

MAVSDK-Server is the link between MAVSDK-Java and PX4. It can run on your Android device as well, on a companion computer or somewhere else. You just need to properly specify the IP address / port.

With MAVSDK-Java, you can use Offboard command such as [actuator control](https://mavsdk.mavlink.io/develop/en/api_reference/structmavsdk_1_1_offboard_1_1_actuator_control.html#mavsdkoffboardactuatorcontrol-struct-reference) to send the value you are reading on your joystick (link is C++ but you should find equivalent in Java).

No need of MavRouter / MavProxy with your described use case IMO.

A good reading [here](https://auterion.com/getting-started-with-mavsdk-java/)

---

<div class="post-metadata">

**Author:** ![rroche](https://discuss.px4.io/user_avatar/discuss.px4.io/rroche/32/17635_2.png) [@rroche](https://discuss.px4.io/u/rroche)\
**Post date:** [March 2, 2021, 6:21pm UTC](https://discuss.px4.io/t/mavsdk-android/21242/3 "2021-03-02T18:21:10Z")

</div>

A good follow up from the comment above, is to mention that if you are hoping to also use QGC, then you need the mavlink-router in between the PX4 Autopilot and MAVSDK+QGC

---

<div class="post-metadata">

**Author:** ![3ric](https://discuss.px4.io/letter_avatar_proxy/v4/letter/3/ad7895/32.png) [@3ric](https://discuss.px4.io/u/3ric)\
**Post date:** [March 4, 2021, 5:44am UTC](https://discuss.px4.io/t/mavsdk-android/21242/4 "2021-03-04T05:44:55Z")

</div>

So if I use a a ground control (e.g. Mission Planner) and the app, what setup do I need?

App sends to the MAVSDK-Server and then the Mavlink-Router and then the flight controller (we are using the following one: omnibus f4 pro)

---

<div class="post-metadata">

**Author:** ![rroche](https://discuss.px4.io/user_avatar/discuss.px4.io/rroche/32/17635_2.png) [@rroche](https://discuss.px4.io/u/rroche)\
**Post date:** [March 8, 2021, 11:41pm UTC](https://discuss.px4.io/t/mavsdk-android/21242/5 "2021-03-08T23:41:31Z")

</div>

You connect your autopilot directly to the mavlink-router, and then your app, and any other mavlink resource directly to the mavlink-router.

Check-out the project README for more instructions

> **[mavlink-router/mavlink-router](https://github.com/mavlink-router/mavlink-router)**
>
> Route mavlink packets between endpoints. Contribute to mavlink-router/mavlink-router development by creating an account on GitHub.
