Unable to install custom/developmental plugin on the camera

Hi guys,

So we took one of the sample plugin projects and made a minor change into it to make sure we are able to install plugins on the camera. developer mode was enabled, we used adb tools to get the plugin on the camera. once the apk was there, we went on the plugins screen on the camera and after clicking on it, it says starting plugin, cannot change screen while plugin is started and it gets stuck there. It does not give any error but nor is it finishing. Anything we are doing wrong? or there is simply some issue with the plugin?
in this test plugin, we just added an extra word in the exif data “camera make and model”.
can someone help us understand what is going wrong here?
attaching the apk for more clarity.

app-debug.apk (2.8 MB)

Please advise:

  • camera model (are you using a Z1?)
  • firmware version
  • link to sample plugin you used (lkely from GitHub)

There are different version of the sample plugin for X and for Z1/V. want to make sure you’re using the correct plugin sample for the correct model.

Thanks a lot Craig!
That seems to be the problem, we were using the sample for X. I assumed that was a universal sample which would work with all models, at least the latest ones. I searched for and found the sample for the Z1. We will now try to implement that and see how it goes.
Thank you for your help Craig.

-Sumeet Maru

1 Like

RICOH changed the API slightly for the THETA X as it has a LCD touchscreen that can supply user input.

The examples for the V and Z1 are largely the same. The Z1 has a small LCD screen and different buttons on the body, but those differences are generally small.

API specs are here:


Thanks for the clarification @craig
We tried the correct sample which works with the Z1, but it still fails to install.
I guess we have no other way but to connect the camera to the computer and debug via android studio.
Thank you for your help Craig!

Using Plugin Camera API Sample



adb devices -l
List of devices attached
00105377               device product:msm8953_64 model:RICOH_THETA_V device:msm8953_64 transport_id:1


theta-plugin-camera-api-sample\app\build\outputs\apk\debug> adb install .\app-debug.apk
Performing Streamed Install

select with desktop

select with mobile

start with mobile

Using plug-in SDK

source code



Using Corretto 11. This is old. You may be able to use 17. I just used the old one so I didn’t have to upgrade gradle.

run with debugger

specify plugin to launch

Hi @craig, thank you for the detailed steps provided.
I have finally have the developer mode enabled on the camera.
So, I tried the camera api sample which is supposed the rename the images with the timestamp. I tried all possible methods, install using adb tools, using run from android studio to install the app on the camera. Then enabled the plugin from the desktop app. For starting the app, i tried both methods, using the function button on the camera as well as using the ricoh app, but the output is always the same. When trying to start the plugin, first time it beeps with a red light 3-4 times rapidly, shows the plugin name on the camera, below is the text “Image”, but then it comes back to the plugin selection scene after a few seconds. When trying second time, it just shows the plugin name, the text below which said “Image” is gone and now the buttons don’t do anything, i need to restart the camera. Tried using the shutter button when the plugin name is being flashed on the camera screen, but it does nothing. The light does change colour to white, but it is not taking any picture.
Is it just me or the repository does not work out of the box? Any additional changes required?
Also, the firmware on the camera is the latest version, 3.10.2

Once i enabled logs, i do see an entry in logcat before it crashes, “An error occurred while connecting to camera 0: Service not available”

Please ignore the above 2 posts, i was forgetting about 1 crucial thing. When searching for the error “An error occurred while connecting to camera 0: Service not available”, i found it was related to camera permissions and i realized what was wrong. The documentation mentions using the vysor app to grant permissions when using the app for the first time. the camera does not give any permissions to the app by default even though declared in the manifest, it needs to be given from the vysor app. Once i did that, the sample plugin started working.
Thank you once again @craig for your support and the detailed steps.


Thanks for letting us know about the permissions that you set with Vysor. I had forgotten to mention that to you earlier. There’s a lot of older articles that cover the steps.

This one is from 5 years ago with the older V.

Tutorial: My First Plug-in - Easy Guide for Novice Developers

BTW, we had a concept to change the filename to identify the rooms instead of the metadata.