How to Develop
Contents
- Preparation of development environment and debugging
- Names of Camera Parts
- Controlling the Camera
- Device Control
- Open Source Licenses
- Version Information
- Specify Camera Model Support
- Warnings When Developing Plug-ins
- Enables/Disables the output of the debug log (logcat)
Preparation of development environment and debugging
Step 1: Get RICOH THETA V, Z1 or X
-
In case of RICOH THETA V, update the firmware to v2.30.1 or later to develop the plug-in.
-
If you are Japan residence and would like to develop plug-in using RICOH THETA Z1 51GB or RICOH THETA X, please see here
Step 2: Enable developer mode with RICOH
- Register from here to enable developer mode. This step must be completed before moving on to Step 3.
Step 3: Enable THETA developer mode using the RICOH desktop application on Mac or Windows
- In the File menu go to Developer Mode, set to ON
Step 4: Install Android™ Studio
Step 5: Connect RICOH THETA V, Z1 or X with USB
Step 6: Enter adb devices
from terminal and ready when the device name appears
Step 7: Download RICOH THETA Plug-in SDK
Step 8: Develop THETA plug-in, which is the Android™ application, based on SDK
Step 9: Debugging with the Run button etc. With this step, the THETA plug-in is executed by installing the APK.
Names of Camera Parts
RICOH THETA V
-
Microphone
-
Lens
-
Camera Status Light (LED2)
-
Shutter Button
-
Speaker
-
Wireless Light (LED3)
-
Capture Mode Light (LED4, LED5, LED6)
-
Video Recording Light (LED7)
-
Memory Warning Light (LED8)
-
Power Light (LED1)
-
Power Button
-
Wireless Button
-
Mode Button
-
Microphone Jack
-
USB Port
-
Tripod Mount Hole
RICOH THETA Z1
-
Speaker
-
Rear lens
-
Microphone
-
Shutter Button
-
Camera Status Light (LED2)
-
OLED
-
USB Port
-
Wrist Strap Attachment
-
Tripod Mount Hole
-
Power Light (LED1)
-
Power Button
-
Wireless Button
-
Mode Button
-
Fn Button
-
Front lens
RICOH THETA X
-
Speaker
-
Battery/card cover
-
Rear lens
-
LCD panel
-
Shutter button
-
Tripod mount hole
-
Power lamp
-
Power button
-
Mode button
-
USB terminal (USB Type-C)
-
Front lens
-
Microphone
-
Camera status lamp
Controlling the Camera
Plug-ins can take pictures using the Web API or the Camera API. When using the Camera API with a plug-in, the Web API can not be used.
Device Control
Plug-in app can send RICOH THETA specified Broadcast Intent to use several functions ; sucn as controlling LED/OLED, controlling WLAN mode, sounds SE, etc. See also Broadcast Intent for detail.
Open Source Licenses
By placing the open source license information used by the plug-in in the plug-in (APK file) \assets\licenses.html, you can acquire the license information using the Web API camera._getPluginLicense command. In case of no open source softwares in the plug-in, please use the following code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<style type="text/css">
body { padding: 0; font-family: sans-serif; }
</style>
</head>
<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">
<div>
<p>This plug-in does not use open source software.</p>
</div>
</body>
</html>
Version Information
The version of the plugin is designed using a number and a decimal point, with the major version using 2 digits or less, the minor version using 2 digits or less, and the build number using 4 digits or less. For example: “12.34.5678”
Specify Camera Model Support
The plug-in must specify the camera model that it will run on. The plug-in can only be installed on the camera model specified in your manifest. Please use the following syntax to declare the camera model in your AndroidManifest.xml file. For RICOH THETA X (FW1.00.2), write the THETA X model specification in the first line.
<uses-feature android:name="com.theta360.receptor.x" android:required=["true" | "false"]/>
<uses-feature android:name="com.theta360.receptor.z1" android:required=["true" | "false"]/>
<uses-feature android:name="com.theta360.receptor.v" android:required=["true" | "false"]/>
If the plug-in does not support RICOH THETA V, Z1 and only supports RICOH THETA X, please declare the following in your AndroidManifest.xml file.
<uses-feature android:name="com.theta360.receptor.x" android:required="true"/>
<uses-feature android:name="com.theta360.receptor.z1" android:required="false"/>
<uses-feature android:name="com.theta360.receptor.v" android:required="false"/>
Warnings When Developing Plug-ins
- To install the developed plug-in on RICOH THETA V/Z1/X you need to enable ADB. Please register as a developer with RICOH and enable ADB according to the documentation. (Please be patient as we are planning to release the developer registration mechanism and effective ADB usage techniques in the near future.)
- Please limit the size of the plug-in to 256MB
- Plug-in and package names cannot exceed 64 characters and an extension must use apk
- Version number must follow the versioning information
- Use of open source licenses must be explicitly stated
- You cannot start a service
- When you press and hold the mode button for 2 seconds or more, the plug-in must terminate. With the RICOH THETA X, even if an ACTION_FINISH_PLUGIN is issued, no force-stop of the plug-in APK from the main camera app side is performed, so onPause() or finish() must be used to close.
- When the plug-in is terminated, the plug-in must give a notification of termination for the plug-in
Enables/Disables the output of the debug log (logcat)
For RICOH THETA Z1 (firmware version 1.50.1 or later) and RICOH THETA X (firmware version 1.20.0 or later), the debug log (logcat) is not output by default.
Use the following ADB command to output the debug log (logcat).
Note that the power consumption will increase when the debug log (logcat) is output.
Log output enabled
adb shell setprop persist.log.tag 0
Log output disabled
adb shell setprop persist.log.tag A