MOVERIO
BT-35E Documentation

2. Developing Android Apps

2.1. Summary of Developing Android Apps

The following describes the steps necessary to develop an Android app for Moverio.

Introduction to the Android SDK

Including the Moverio SDK

Creating an App (Coming soon)

API Reference

Range of Uses for Moverio SDK (Coming soon)

2.1.1 Introduction to the Android SDK

The introduction to the Android SDK assumes the following steps will be performed in a Windows 10 environment.

2.1.1.1 Acquiring Android Studio

Download Android Studio from the following website. (Android Studio 3.1.4 as of August 2018)
https://developer.android.com/studio/

2.1.1.2 Installing Android Studio

Follow the directions provided by the installer to install Android Studio.

Example) C:\Users\<user name>name\AppData\Local\Android\sdk
* From here on, instructions assume Android Studio is installed in the folder above.

2.1.1.3 Proxy Settings for Android Studio

If you are developing an app in a network environment that requires proxy settings, make sure you make proxy settings for Android Studio. See the following website for details on the procedures.
https://developer.android.com/studio/intro/studio-config#gradle-plugin
If you do not know the proxy settings, contact your network administrator for information on how to connect to an external network using proxy settings.

2.1.1.4 Acquiring/Updating Tools in Android SDK Manager

Make sure you use the Android SDK Manager to acquire the tools necessary for app development. See the following website for details on the procedures.
https://developer.android.com/studio/intro/update#sdk-manager

2.1.2 USB Driver Settings

You need to setup the USB driver for your host device to connect to the app development computer. To setup your USB driver, check the setup instructions for your host device.

2.1.3 Connecting the Host Device and Computer

This section explains how to connect the computer and the host device after you have finished making ADB settings.

2.1.3.1 Settings for the Host Device

Enable the developer option for the host device. Next, enable USB debugging. See the following website for details on the procedures.
https://developer.android.com/studio/debug/dev-options

2.1.3.2 Checking the Connection

You can check if the computer and the host device are connected by using the ADB connection check command.
Start the command prompt, run "cd C:\Users\<user name>\AppData\Local\Android\sdk\platform-tools",
and move the folder.
* It is useful to maintain the environment variable path mentioned above.

When you execute "adb devices" and the device name is displayed in the list, ADB connection is complete.

2.1.4 Including the Moverio SDK

The following procedures assume app development in Android Studios.

Display the Project View in Android Studio, and then create a "libs" folder from [File]-[New]-[Directory].
C:\Users\<user name>\AndroidStudioProjects\<application name>\app\libs is created; put MoverioSDK.jar in this folder.
(When the created project folder is C:\Users\<user name>\AndroidStudioProjects)
* Explanations from now on are based on the assumption that the project is at C:\Users\<user name>\AndroidStudioProjects\<application name>.
Next, add MoverioSDK.jar to your application's dependencies.

apply plugin:  'com.android.application'

android {
        :
        :
}

dependencies {
        :
    // Add MoverioSDK.jar
    implementation files('libs/MoverioSDK.jar')
        :
        :
}

Press the Sync Project with Gradle Files button above Android Studio to apply the Gradle change to the project.

2.4. Sensor Management

Moverio is equipped with a variety of sensors that detect movement, direction, and environment. You can use the Moverio SDK to capture the raw data from these sensors. The sensor data can be used to calculate the head movement of the user and the brightness of the surrounding environment.

Please refer to the related information.

Sensor type

Sensor axis

Acquiring sensor data

API Reference

Sample code

2.4.1 Sensor type

Moverio is equipped with various types of sensors. These sensors consist of both hardware and software-based types. Hardware-based sensors include those for acceleration, magnetic field, angular velocity, and surrounding ambient light. Software-based sensors consist of virtual sensors that use values output by a single or multiple hardware-based sensors. Virtual sensors can calculate items such as rotation vectors and gravity.

Sensor Type Description Use example
TYPE_ACCELEROMETER Hardware Measures the acceleration of Moverio, including gravity, along the three axises (X, Y, and Z) in [m/s²]. Motion detection (slanting and so on)
TYPE_MAGNETIC_FIELD Hardware Measures the surrounding magnetic field along the three axises (X, Y, and Z) in [µT]. Position detection
TYPE_GYROSCOPE Hardware Measures the angular velocity of Moverio along the three axises (X, Y, and Z) in [rad/s]. Motion detection (rotation and so on)
TYPE_LIGHT Hardware Measures the surrounding ambient light in [lx]. Display brightness adjustment according to the surrounding ambient light
TYPE_GRAVITY Software Measures the acceleration of gravity along the three axises (X, Y, and Z) in [m/s²]. Motion detection (slanting and so on)
TYPE_LINEAR_ACCELERATION Software Measures the acceleration along the three axises (X, Y, and Z) with gravity removed in [m/s²]. Used for detecting tapping, walking, and similar actions
TYPE_ROTATION_VECTOR Software Measures the Moverio orientation in rotation vectors. Head tracking and so on

2.4.2 Sensor axis

Moverio sensors use the same coordinate system as standard Android sensors. When wearing the Moverio, the X axis indicates rightward movement, the Y axis indicates upward movement, and the Z axis indicates the direction toward the user.

2.4.3 Acquiring sensor data

You can use the Moverio SDK to enable use of the various sensors equipped to Moverio.

To acquire the sensor data, you first need to establish communication with Moverio sensors. To do this, create a SensorManager class instance and call the open() method. When doing so, pass the listener instances of the sensor types and sensor data as arguments.

Sensor data can be acquired at any time necessary by use of the onSensorDataChanged() method for registered listeners. The onSensorDataChanged() method is called at extremely high speed. In order to ensure optimal use of sensors for an application, configure so that processing such as that requiring a great amount of time is not performed within the onSensorDataChanged() method. When you finish acquiring sensor data, make sure you end communication with the Moverio sensors. To end communication, use the close() method.

public class SensorActivity extends Activity implements SensorDataListener {private SensorManager mSensorManager = null;

  @Override
  public final void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mSensorManager = new SensorManager(this);
  }

  @Override
  protected void onResume() {
    super.onResume();
    try {
      mSensorManager.open(SensorManager.TYPE_ACCELEROMETER, mSensorDataListener);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

  @Override
  protected void onPause() {
    super.onPause();
    mSensorManager.close();
  }

  @Override
  public void onSensorDataChanged(SensorData data) {
    // Do something with this sensor value.
  }
}

2.4.4 Notes on sensor control

Sensor control using the Moverio SDK can only be used with a single application. When using sensor control with another application, be sure to stop using sensor control with an application that uses sensor control before using it.

Go to Top