Fishbowl
Browse documentation

Kiosk Mode (Device Owner)

Kiosk mode locks the device to the Fishbowl app using Android's Device Owner and Lock Task Mode APIs. When enabled, the device boots directly into Fishbowl with no navigation bar, status bar, or ability to switch apps.

Overview

Feature Behavior
Lock Task Mode Device is locked to Fishbowl - home, back, and recents are disabled
Home activity Fishbowl launches automatically on boot
Screen always on Screen stays on while plugged in (AC, USB, or wireless)
System UI Status bar, navigation bar, and notifications are hidden

Requires Android 6.0+ (API 23). Lock Task features such as hiding the status bar require Android 9.0+ (API 28).

Using an iPad? Kiosk mode (Device Owner) is Android-only. To lock an iPad to Fishbowl, use Guided Access instead.

1. Set Fishbowl as Device Owner

The easiest way is to scan a QR code on a factory-reset device, which installs Fishbowl, sets it as Device Owner, and links it to your account in one step (Method A). If a device is already set up and cannot be factory reset, you can enable kiosk mode over ADB instead (Method B).

This method provisions the device during its initial setup on Android 7+ (API 24). It installs Fishbowl, sets it as Device Owner, and links the device to your account automatically. Ideal for new or factory-reset devices and fleet deployments.

  1. Log in to your Fishbowl account and go to Add Device
  2. Select Provision and link a modern Android device
  3. Optionally enter a room name and configure Wi-Fi credentials. Select your Android version
  4. Factory reset the device
  5. On the welcome screen, tap the same spot 6 times to open the QR provisioning flow
  6. Scan the QR code displayed on your screen
  7. The device will download and install Fishbowl, set it as Device Owner, and link to your account automatically

Tip: Leave the room name empty to reuse the same QR code for multiple devices. Each device will appear in your account as it completes provisioning. If a device does not appear automatically, expand Device not appearing? and enter the linking code shown on the device.

Method B: ADB (for devices that are already set up)

If a device is already set up and you cannot factory reset it, you can enable kiosk mode over ADB, as long as all user accounts are removed first. Requires ADB installed on your computer (ADB setup guide).

  1. Remove all accounts from the device - go to Settings > Accounts and remove every account (Google, Samsung, etc.)

  2. Connect the device via USB or ADB over WiFi (see ADB guide)

  3. Set Fishbowl as Device Owner:

    adb shell dpm set-device-owner com.strix.fishbowl/.receivers.FishbowlDeviceAdminReceiver
    
  4. Verify it was set:

    adb shell dumpsys device_policy | grep -A 5 "Device Owner"
    

Note: If you see Not allowed to set the device owner because there are already some accounts on the device, you need to remove all accounts from Settings first. On some devices, you may also need to remove the default pre-installed account.

2. Enable Kiosk Mode in Fishbowl

Once the app is set as Device Owner, a Kiosk Mode option appears in the Fishbowl settings menu.

  1. Open the Fishbowl app
  2. Tap the logo and select Kiosk Mode
  3. Tap Enable Kiosk Mode

The device will immediately enter Lock Task Mode. The navigation bar, status bar, and notifications will be hidden, and the device will be locked to Fishbowl.

Web Dashboard Settings

Once a device is set as Device Owner and has synced with the server, a Kiosk & Administration section appears in the device settings on the web dashboard. This allows you to remotely configure the following settings:

Setting Description
Kiosk Mode Enable or disable Lock Task Mode. When enabled, the device is locked to Fishbowl with no navigation bar, status bar, or ability to switch apps.
NTP Server Configure a custom NTP server address for time synchronization (e.g. pool.ntp.org). Leave blank to use the device default.

These settings are pushed to the device on the next sync (typically within 2 minutes).

Note: You can also configure these settings across multiple devices at once using the multi-edit feature in the device list.

3. Disabling Kiosk Mode

From the app

  1. Tap the logo and select Kiosk Mode
  2. Tap Disable Kiosk Mode

From ADB

If you cannot access the app settings, you can remove Device Owner via ADB, which will also exit Lock Task Mode:

adb shell dpm remove-active-admin com.strix.fishbowl/.receivers.FishbowlDeviceAdminReceiver

Factory reset

A factory reset will always clear Device Owner and Lock Task Mode.

4. Removing Device Owner

If you no longer need kiosk mode and want to return the device to normal operation:

From the web dashboard

  1. Navigate to the device in the Fishbowl web dashboard
  2. Open the device settings (click Edit)
  3. Expand the Kiosk & Administration section
  4. Click Remove Device Owner and confirm

Warning: Removing Device Owner from the web dashboard is permanent. To re-enable it, you will need to factory reset the device or set it up again via ADB.

From the app

  1. Tap the logo and select Kiosk Mode
  2. Tap Clear Device Owner

This removes Device Owner status and all kiosk policies. Fishbowl will continue to run normally but without kiosk restrictions.

From ADB

adb shell dpm remove-active-admin com.strix.fishbowl/.receivers.FishbowlDeviceAdminReceiver

Troubleshooting

"Not allowed to set the device owner because there are already some accounts on the device"

Remove all accounts from Settings > Accounts before running the dpm set-device-owner command. This includes Google, Samsung, and any other accounts. On some devices, a hidden or pre-installed account may also need to be removed.

"Not allowed to set the device owner because the user setup has already been completed"

Some manufacturers block Device Owner on already-setup devices even after removing accounts. In this case, use QR provisioning (Method A) after a factory reset.

Device Owner is set but kiosk toggle does not appear

Ensure you are running a Fishbowl version that supports kiosk mode (v2.11.10+). Update the app and relaunch.

Device is stuck in Lock Task Mode

Connect via ADB and remove Device Owner:

adb shell dpm remove-active-admin com.strix.fishbowl/.receivers.FishbowlDeviceAdminReceiver

If ADB is not available, factory reset the device.

Screen does not stay on

The stay-on-while-plugged-in setting only applies when the device is connected to a power source (AC, USB, or wireless charging). Ensure the device is plugged in.

Quick Reference

Task Command
Set Device Owner adb shell dpm set-device-owner com.strix.fishbowl/.receivers.FishbowlDeviceAdminReceiver
Verify Device Owner adb shell dumpsys device_policy | grep -A 5 "Device Owner"
Remove Device Owner adb shell dpm remove-active-admin com.strix.fishbowl/.receivers.FishbowlDeviceAdminReceiver
Check accounts on device adb shell dumpsys account
Force stop app adb shell am force-stop com.strix.fishbowl