SM Braille Viewer

Banner SM Braille Viewer

SM Braille Viewer is a free Android app to handle the Braille translation and connect with Braille display to show the result.

It supports to open and translate popular text file types including TXT, RTF, DOCX, HTML, PDF, EPUB; and to send Braille-ready files like BRF and BRL directly to the Braille display without translation. In addition, the app works like an engine to receive text from third-party apps, translate into Braille and show the result on Braille display.

For Users

Below are steps to connect Braille display and use SM Braille Viewer app to translate shared text, files or text sent from other apps, then to show the result on the Braille display.

SM Braille Viewer handles the Braille translation and devices’ connection same as Google Brailleback but it runs independently with screen readers like Talkback.

Connecting with Braille Display

  • Run SM Braille Viewer,
  • Connect Braille display with the Android device. When connected successfully, SM Braille Viewer will automatically recognize the Braille display. Can open SM Braille Viewer from the notification area and check at the top of SM Braille Viewer’s main screen.

SM Braille Viewer Options

Currently, the app only offers some basic options:

  • Braille table: choose preferred language table to let the SM Braille Viewer translate shared text or opened file into Braille.
  • SM Braille Viewer agent always on: toggle to have the app run in the background or automatically quitted when closing the app.
  • Enable word wrapping: check to let the app automatically word-wrap based on detected Braille display model.

Using SM Braille Viewer

The app was originally created as an engine to handle the Braille music translation for our other app named SM Music Reader. However, we thought that it would be helpful for both end users and app developers so we decided to have it run as an independent Braille agent. More information about SM Music Reader app can be viewed and download from: https://play.google.com/store/apps/details?id=org.saomaicenter.music.re…

To use it with SM Music Reader:

  • Make sure the Braille display connected with SM Braille Viewer,
  • Run SM Music Reader and open a sheet music,
  • In the Score screen, double-tap on the score content to open context menu,
  • Choose Send to SM Braille Viewer. The Braille music translation result will be shown on the Braille display.

Note 1: it will translate the current selected music part. To translate other part of a multipart sheet, choose from the parts dropdown list at the bottom of score screen. Please refer to SM Music Reader’s user guide for more information.

Note 2: choose the correct Braille table from Braille settings from main menu of SM Music Reader in order to translate text music elements such as song title, author’s name, lyrics etc. SM Music Reader doesn’t use the Braille table specified from SM Braille Viewer.

To translate text from other apps:

  • Make sure the Braille display connected with SM Braille Viewer,
  • In an app with text content like opening a web page with Chrome, go to More options button and choose share with SM Braille Viewer. Or with text file, open a text file and choose open with SM Braille Viewer. SM Braille Viewer currently supports BRF, TXT, RTF, HTML, PDF, DOCX and Epub filetypes.
  • If system's app chooser doesn't list SM Braille Viewer in the  list for opening braille-ready-format (BRF, BRL) files, you can open them by "Open brf file..." from main UI.

Note, choose the correct Braille table for the text content language from SM Braille Viewer main screen.

For Developers

SM Braille Viewer has built-in broadcast receiver for receiving text from third-party apps, translates and sends it to braille display.

See following code snippets for instruction how to send text to SM Braille Viewer:

Intent intent = new Intent("org.saomaicenter.brailleviewer.request");

intent.setComponent(new ComponentName("org.saomaicenter.brailleviewer",

        "org.saomaicenter.brailleviewer.BrailleBroadcastReceiver"));

intent.setType("text/plain");

intent.putExtra(Intent.EXTRA_TEXT, braille);

sendBroadcast(intent);