{"id":1787,"date":"2026-11-02T19:52:47","date_gmt":"2026-11-02T19:52:47","guid":{"rendered":"https:\/\/b9xelectronics.com\/?page_id=1787"},"modified":"2026-11-02T21:48:24","modified_gmt":"2026-11-02T21:48:24","slug":"b9x-ptt-chat-for-android","status":"publish","type":"page","link":"https:\/\/b9xelectronics.com\/?page_id=1787","title":{"rendered":"B9X PTT Chat For Android &#8211; Free!"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Follow these instructions to install the app on your Android phone:<\/p>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-58038187-c9e8-46f3-986c-a7e1ac4735b8\" href=\"https:\/\/b9xelectronics.com\/wp-content\/uploads\/2026\/11\/B9X_PTT_Chat.zip\">B9X_PTT_Chat<\/a><a href=\"https:\/\/b9xelectronics.com\/wp-content\/uploads\/2026\/11\/B9X_PTT_Chat.zip\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-58038187-c9e8-46f3-986c-a7e1ac4735b8\">Download<\/a><\/div>\n\n\n\n<ol class=\"wp-block-list\">\n<li>From your Android phone&#8217;s browser, go to b9xelectronics.com and click the above link.<\/li>\n\n\n\n<li>Then select Download, click Open, Extract, and Extract again.<\/li>\n\n\n\n<li>Once extracted, click on file and click Install.<\/li>\n\n\n\n<li>If you want you can scan the app and it should say &#8216;This app looks safe&#8217; and now click Install.<\/li>\n\n\n\n<li>Click Open.<\/li>\n\n\n\n<li>Go to server tab and enter the IP of the PC hosting B9X Voice Server.<\/li>\n\n\n\n<li>Check remember password and key on this device<\/li>\n\n\n\n<li>Scroll down and click Save Settings<\/li>\n\n\n\n<li>Go back to Talk tab and click Connect<\/li>\n\n\n\n<li>Next, it will ask if this app can &#8216;Record audio&#8217;, click &#8216;While using the app&#8217; and then let it &#8216;Allow notifications&#8217;.<\/li>\n\n\n\n<li>You should now be connected to the server.<\/li>\n\n\n\n<li>Repeat this for an additional phone.<\/li>\n\n\n\n<li>Now the two phones can talk with each other.<\/li>\n\n\n\n<li>Click and hold down the &#8216;Hold To Talk&#8217; to talk and the other person should hear you.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">If your phone differs than what I described, you will need to search the Internet or use AI for further instructions.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"473\" height=\"1024\" data-id=\"1793\" src=\"https:\/\/b9xelectronics.com\/wp-content\/uploads\/2026\/11\/Screenshot_20261102_1514141-1-473x1024.jpg\" alt=\"\" class=\"wp-image-1793\" srcset=\"https:\/\/b9xelectronics.com\/wp-content\/uploads\/2026\/11\/Screenshot_20261102_1514141-1-473x1024.jpg 473w, https:\/\/b9xelectronics.com\/wp-content\/uploads\/2026\/11\/Screenshot_20261102_1514141-1-138x300.jpg 138w, https:\/\/b9xelectronics.com\/wp-content\/uploads\/2026\/11\/Screenshot_20261102_1514141-1-768x1664.jpg 768w, https:\/\/b9xelectronics.com\/wp-content\/uploads\/2026\/11\/Screenshot_20261102_1514141-1-709x1536.jpg 709w, https:\/\/b9xelectronics.com\/wp-content\/uploads\/2026\/11\/Screenshot_20261102_1514141-1-945x2048.jpg 945w, https:\/\/b9xelectronics.com\/wp-content\/uploads\/2026\/11\/Screenshot_20261102_1514141-1-600x1300.jpg 600w, https:\/\/b9xelectronics.com\/wp-content\/uploads\/2026\/11\/Screenshot_20261102_1514141-1.jpg 1080w\" sizes=\"auto, (max-width: 473px) 100vw, 473px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"473\" height=\"1024\" data-id=\"1794\" src=\"https:\/\/b9xelectronics.com\/wp-content\/uploads\/2026\/11\/Screenshot_20261102_1520541-473x1024.jpg\" alt=\"\" class=\"wp-image-1794\" srcset=\"https:\/\/b9xelectronics.com\/wp-content\/uploads\/2026\/11\/Screenshot_20261102_1520541-473x1024.jpg 473w, https:\/\/b9xelectronics.com\/wp-content\/uploads\/2026\/11\/Screenshot_20261102_1520541-138x300.jpg 138w, https:\/\/b9xelectronics.com\/wp-content\/uploads\/2026\/11\/Screenshot_20261102_1520541-768x1664.jpg 768w, https:\/\/b9xelectronics.com\/wp-content\/uploads\/2026\/11\/Screenshot_20261102_1520541-709x1536.jpg 709w, https:\/\/b9xelectronics.com\/wp-content\/uploads\/2026\/11\/Screenshot_20261102_1520541-945x2048.jpg 945w, https:\/\/b9xelectronics.com\/wp-content\/uploads\/2026\/11\/Screenshot_20261102_1520541-600x1300.jpg 600w, https:\/\/b9xelectronics.com\/wp-content\/uploads\/2026\/11\/Screenshot_20261102_1520541.jpg 1080w\" sizes=\"auto, (max-width: 473px) 100vw, 473px\" \/><\/figure>\n<\/figure>\n\n\n\n<!-- Paste this entire file into one WordPress Custom HTML block. -->\n<style>\n#b9x-android-chat{--b9x-maroon:var(--wp--preset--color--secondary,#671d1d);--b9x-tan:var(--wp--preset--color--primary,#af9a7d);--b9x-ink:#292626;--b9x-muted:#675f59;--b9x-line:#ded6d1;font-family:var(--wp--preset--font-family--montserrat,\"Montserrat\"),Arial,Helvetica,sans-serif;color:var(--b9x-ink);background:#fff;line-height:1.75;max-width:1180px;margin:0 auto;font-size:16px}\n#b9x-android-chat *{box-sizing:border-box}\n#b9x-android-chat .b9x-hero{background:var(--b9x-maroon);color:#fff;border-top:5px solid var(--b9x-tan);border-radius:6px;padding:40px 36px;margin-bottom:26px}\n#b9x-android-chat .b9x-eyebrow{color:#f0dfc8;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin:0 0 12px}\n#b9x-android-chat h1{color:#fff;font-size:clamp(28px,4vw,42px);font-family:inherit;font-weight:700;line-height:1.22;margin:0 0 20px}\n#b9x-android-chat .b9x-hero p{color:#fff}\n#b9x-android-chat .b9x-badges{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}\n#b9x-android-chat .b9x-badges span{background:var(--b9x-tan);color:#241a12;border:1px solid var(--b9x-tan);border-radius:3px;padding:6px 11px;font-size:12px;font-weight:600}\n#b9x-android-chat h2{font-family:inherit;font-weight:600;font-size:28px;line-height:1.35;color:var(--b9x-maroon);border-bottom:3px solid var(--b9x-tan);padding-bottom:10px;margin:40px 0 20px}\n#b9x-android-chat h3{font-family:inherit;font-weight:600;font-size:20px;line-height:1.4;color:var(--b9x-maroon);margin:26px 0 12px}\n#b9x-android-chat p{margin:0 0 16px}\n#b9x-android-chat li{margin:8px 0}\n#b9x-android-chat ul,#b9x-android-chat ol{padding-left:26px;margin:14px 0 22px}\n#b9x-android-chat a{color:var(--b9x-maroon);text-decoration:underline;text-underline-offset:3px}\n#b9x-android-chat a:hover{color:#461313}\n#b9x-android-chat a:focus-visible,#b9x-android-chat summary:focus-visible{outline:3px solid var(--b9x-tan);outline-offset:4px}\n#b9x-android-chat .b9x-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}\n#b9x-android-chat .b9x-card{padding:24px;background:#fff;border:1px solid var(--b9x-line);border-top:4px solid var(--b9x-maroon);border-radius:5px}\n#b9x-android-chat .b9x-card h3{margin-top:0}\n#b9x-android-chat .b9x-note{padding:18px 20px;margin:22px 0;border-left:5px solid var(--b9x-tan);background:#f8f5ef;border-radius:0 4px 4px 0}\n#b9x-android-chat .b9x-amber{border-left-color:var(--b9x-maroon);background:#faf2f0}\n#b9x-android-chat .b9x-table{overflow-x:auto;margin:18px 0 26px}\n#b9x-android-chat table{width:100%;border-collapse:collapse;font-size:14px}\n#b9x-android-chat th,#b9x-android-chat td{text-align:left;vertical-align:top;border:1px solid var(--b9x-line);padding:13px 15px}\n#b9x-android-chat th{background:var(--b9x-maroon);color:#fff;font-weight:600;border-color:#82403b}\n#b9x-android-chat tbody tr:nth-child(even){background:#faf7f5}\n#b9x-android-chat code{font-family:Consolas,\"Courier New\",monospace;background:#f3ece8;padding:2px 6px;border-radius:3px;color:#571725;overflow-wrap:anywhere}\n#b9x-android-chat nav{padding:24px;background:#f7f4f1;border:1px solid var(--b9x-line);border-left:6px solid var(--b9x-maroon);border-radius:5px;margin:28px 0}\n#b9x-android-chat nav>strong{color:var(--b9x-maroon)}\n#b9x-android-chat nav ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px 22px;margin-bottom:0}\n#b9x-android-chat section{scroll-margin-top:30px}\n#b9x-android-chat details{border:1px solid var(--b9x-line);border-radius:5px;padding:17px 20px;margin:12px 0;background:#faf8f6}\n#b9x-android-chat summary{font-weight:600;color:var(--b9x-maroon);cursor:pointer}\n#b9x-android-chat details p{margin-top:14px;margin-bottom:2px}\n#b9x-android-chat .b9x-footer{font-size:13px;color:var(--b9x-muted);border-top:2px solid var(--b9x-tan);padding-top:22px;margin-top:38px}\n@media(max-width:600px){#b9x-android-chat{font-size:15px}#b9x-android-chat .b9x-hero{padding:28px 21px}#b9x-android-chat h2{font-size:24px}#b9x-android-chat h3{font-size:19px}#b9x-android-chat th,#b9x-android-chat td{padding:10px}#b9x-android-chat nav{padding:19px}#b9x-android-chat .b9x-grid{grid-template-columns:1fr}}\n@media print{#b9x-android-chat{font-size:11pt;max-width:none}#b9x-android-chat .b9x-hero{background:white;color:black;border:1px solid #aaa}#b9x-android-chat .b9x-hero h1,#b9x-android-chat .b9x-hero p,#b9x-android-chat .b9x-eyebrow{color:black}#b9x-android-chat nav,#b9x-android-chat .b9x-badges{display:none}#b9x-android-chat .b9x-grid{display:block}#b9x-android-chat .b9x-card{margin-bottom:12px}#b9x-android-chat h2{break-after:avoid}}\n<\/style>\n<article id=\"b9x-android-chat\">\n<header class=\"b9x-hero\">\n<p class=\"b9x-eyebrow\">B9X Electronics \u00b7 Mobile voice and messaging<\/p>\n<h1>B9X PTT Chat For Android<\/h1>\n<p><strong>Your B9X Voice Server connection, on your Android phone.<\/strong> Join a voice conversation, press and hold to talk, or enable hands-free VOX. Exchange short text messages with compatible connected users and let your phone read incoming messages aloud.<\/p>\n<p>A dark, tabbed interface keeps everyday operation simple. Live analog microphone and speaker meters, saved audio controls, adjustable playback buffering, and automatic reconnection help you tailor the app to your device and connection.<\/p>\n<div class=\"b9x-badges\"><span>Android 8.0 or later<\/span><span>B9X Voice Server client<\/span><span>Push-to-talk + VOX<\/span><span>Text messaging<\/span><\/div>\n<\/header>\n<section id=\"android-overview\"><h2>Voice and text through your B9X Voice Server<\/h2>\n<div class=\"b9x-grid\"><div class=\"b9x-card\"><h3>Press to talk<\/h3><p>Connect to your server and hold the large on-screen PTT control while speaking. Release it to listen to other users. Two analog meters show microphone and received voice levels.<\/p><\/div><div class=\"b9x-card\"><h3>Message your group<\/h3><p>Choose a screen name, send a short text message, and review a saved conversation history with sender names and times. Enable text to speech to hear new incoming messages.<\/p><\/div><\/div>\n<h3>Features at a glance<\/h3>\n<ul><li>Four clear tabs: <strong>Talk, Server, Audio, and Messages<\/strong>.<\/li><li>Manual hold-to-talk and optional hands-free VOX.<\/li><li>Live microphone and speaker analog meters.<\/li><li>Saved microphone gain and speaker level controls.<\/li><li>Adjustable VOX trigger, VOX time-off delay, and playback cushion.<\/li><li>Server password and encryption-key fields with independent Show\/Hide controls.<\/li><li>Optional device-protected storage for remembered credentials.<\/li><li>Always Stay Connected for startup connection and automatic retries.<\/li><li>Saved screen name and persistent text-message history.<\/li><li>Optional Android text-to-speech playback of new received messages.<\/li><\/ul>\n<p>This is a <strong>half-duplex client<\/strong>: users take turns speaking through a compatible B9X Voice Server. It is not a standalone server, a full-duplex telephone client, or a Windows radio-interface replacement. It does not include COM-port RTS\/DTR control, a Morse IDer, DTMF server switching, or OpenAI voice commands.<\/p>\n<\/section>\n<nav aria-label=\"Android app instructions\"><strong>Setup and operating instructions<\/strong><ul>\n<li><a href=\"#android-requirements\">What you need<\/a><\/li><li><a href=\"#android-install\">Install and open the app<\/a><\/li><li><a href=\"#android-server\">Set up your server connection<\/a><\/li><li><a href=\"#android-talk\">Talk and listen<\/a><\/li><li><a href=\"#android-audio\">Meters and volume controls<\/a><\/li><li><a href=\"#android-vox\">Hands-free VOX<\/a><\/li><li><a href=\"#android-buffer\">Playback buffering<\/a><\/li><li><a href=\"#android-messages\">Text messaging<\/a><\/li><li><a href=\"#android-speech\">Speak received messages<\/a><\/li><li><a href=\"#android-reconnect\">Reconnect and background operation<\/a><\/li><li><a href=\"#android-privacy\">Saved settings and privacy<\/a><\/li><li><a href=\"#android-help\">Troubleshooting<\/a><\/li>\n<\/ul><\/nav>\n<section id=\"android-requirements\"><h2>What you need<\/h2>\n<ul><li>An Android phone or tablet running <strong>Android 8.0 or later<\/strong>.<\/li><li>A working microphone and listening output. Headphones are recommended, especially for VOX.<\/li><li>A Wi-Fi or mobile-data connection that can reach your <strong>B9X Voice Server<\/strong>.<\/li><li>The server&#8217;s hostname or IPv4 address, UDP port, password, and matching 32-character encryption key.<\/li><li>For named text chat, another compatible client with support for the app&#8217;s <strong>TMSG<\/strong> messaging format.<\/li><li>For spoken messages, an available English voice in the phone&#8217;s Android text-to-speech system.<\/li><\/ul>\n<p>The normal voice format is <strong>11025 Hz, stereo, 16-bit PCM<\/strong>. The server port normally used is <strong>UDP 18000<\/strong>; your server operator may use a different port. The app supports a mono option for installations that specifically require it.<\/p>\n<div class=\"b9x-note\">The app needs an existing B9X Voice Server connection. For access from outside the server&#8217;s local network, that server must be publicly reachable on its configured UDP port. Installing this app does not automatically configure the server, router, or mobile carrier.<\/div>\n<\/section>\n<section id=\"android-install\"><h2>Install and open the app<\/h2>\n<ol><li>Download the Android <strong>APK<\/strong> supplied for this application.<\/li><li>Open the downloaded APK on the Android device. If Android asks, allow installation from the browser or file manager you are using, then approve installation.<\/li><li>Open <strong>B9X PTT Chat<\/strong>. That is the launcher label used by this version.<\/li><li>When connecting for the first time, allow <strong>microphone permission<\/strong>. On newer Android versions, allow notifications so the ongoing voice-session notification is visible.<\/li><\/ol>\n<p>A source-project ZIP is not an installable APK. If you received the B4A project rather than an APK, it must first be built into an Android application. The following instructions describe using the installed app.<\/p>\n<h3>The four tabs<\/h3>\n<div class=\"b9x-table\"><table><thead><tr><th>Tab<\/th><th>What you will find<\/th><\/tr><\/thead><tbody><tr><td><strong>Talk<\/strong><\/td><td>Connection status, microphone and speaker meters, Hold to Talk, Connect, and Disconnect.<\/td><\/tr><tr><td><strong>Server<\/strong><\/td><td>Server address, ports, password, encryption key, remembered credentials, Always Stay Connected, and channel format.<\/td><\/tr><tr><td><strong>Audio<\/strong><\/td><td>Microphone gain, speaker level, VOX, VOX trigger, VOX time-off delay, and playback cushion.<\/td><\/tr><tr><td><strong>Messages<\/strong><\/td><td>Screen name, Send Message, sender\/time history, and Enable text to speech.<\/td><\/tr><\/tbody><\/table><\/div>\n<\/section>\n<section id=\"android-server\"><h2>Set up your server connection<\/h2>\n<ol><li>Open <strong>Server<\/strong>.<\/li><li>Enter the actual <strong>hostname or IPv4 address<\/strong> of your B9X Voice Server. Do not include <code>https:\/\/<\/code>, a web-page path, or a port in the address field.<\/li><li>Enter the server&#8217;s <strong>UDP port<\/strong>.<\/li><li>Enter its password and the exact <strong>32-character encryption key<\/strong>. Both must match the server. The key must use printable ASCII characters.<\/li><li>Leave <strong>Local UDP Port<\/strong> at <strong>0<\/strong> so the phone chooses an available local port. Use a fixed local port only if your particular installation requires it.<\/li><li>Leave <strong>Stereo PCM<\/strong> checked for the normal configuration. Only change the format while disconnected and only to match the server.<\/li><li>If desired, select <strong>Remember password and key on this device<\/strong>.<\/li><li>Tap <strong>Save Settings<\/strong>, return to <strong>Talk<\/strong>, and tap <strong>Connect<\/strong>.<\/li><li>Wait for the status to show <strong>Connected<\/strong> before transmitting.<\/li><\/ol>\n<h3>Initial defaults<\/h3>\n<div class=\"b9x-table\"><table><thead><tr><th>Field<\/th><th>Initial value<\/th><\/tr><\/thead><tbody><tr><td>Hostname \/ IPv4<\/td><td><code>192.168.1.1<\/code><\/td><\/tr><tr><td>Server UDP port<\/td><td><code>18000<\/code><\/td><\/tr><tr><td>Local UDP port<\/td><td><code>0<\/code> \u2014 automatic<\/td><\/tr><tr><td>Server password<\/td><td><code>adminPassword<\/code><\/td><\/tr><tr><td>Encryption key<\/td><td><code>JZ624RAS127878AF901C423910763350<\/code><\/td><\/tr><tr><td>Channel format<\/td><td>Stereo PCM<\/td><\/tr><\/tbody><\/table><\/div>\n<p>These are sample defaults, not credentials for every B9X server. In particular, <code>192.168.1.1<\/code> must be changed unless that is the actual server address. Saved custom settings take precedence. Use the values supplied by your server operator.<\/p>\n<p>The password and key start hidden. Each has its own <strong>SHOW \/ HIDE<\/strong> control. Revealing one does not reveal the other; visibility returns to hidden when the screen is recreated. Connection fields are locked while a connection attempt, active session, or automatic-retry session is running. Disconnect before changing them.<\/p>\n<\/section>\n<section id=\"android-talk\"><h2>Talk and listen<\/h2>\n<ol><li>Connect to the server and keep VOX disabled for the first test.<\/li><li>On <strong>Talk<\/strong>, press and hold <strong>HOLD TO TALK<\/strong>.<\/li><li>Speak normally while the app shows <strong>TRANSMITTING<\/strong>.<\/li><li>Release the control to stop sending and listen.<\/li><li>When another user speaks, the app shows <strong>RECEIVING<\/strong> and the speaker meter responds.<\/li><\/ol>\n<p>Manual transmission and VOX are inhibited while incoming voice is being received. Changing tabs, leaving the screen, or canceling a touch releases manual hold-to-talk. The microphone meter can move without transmitting; it shows the measured input, not proof that audio is being sent.<\/p>\n<p>Start with two working clients on a LAN and verify audio in both directions. Then test the public server hostname over mobile data. A remote client normally does not need its own incoming port-forwarding rule; the server&#8217;s public UDP path must work.<\/p>\n<\/section>\n<section id=\"android-audio\"><h2>Analog meters and audio levels<\/h2>\n<p>The microphone and speaker needles follow measured voice audio. They are not just connection indicators. The microphone indication follows microphone gain; the speaker indication follows the app&#8217;s received-voice level control. They operate during an active connection attempt or session. An idle, disconnected app does not keep the microphone open.<\/p>\n<p><strong>dBFS<\/strong> means decibels below digital full scale. Normal voice appears below 0 dBFS. The high-level indicator identifies very high measured levels; too much gain can distort the sound. These meters are not RF signal-strength or transmitter-power meters.<\/p>\n<div class=\"b9x-table\"><table><thead><tr><th>Audio control<\/th><th>Range \/ default<\/th><th>Effect<\/th><\/tr><\/thead><tbody><tr><td>Microphone gain<\/td><td>0\u2013400% \/ 100%<\/td><td>Adjusts outgoing microphone audio. 100% is unchanged; 0% mutes it. Higher gain can help a quiet microphone but may cause clipping and increases VOX sensitivity.<\/td><\/tr><tr><td>Speaker level<\/td><td>0\u2013200% \/ 100%<\/td><td>Adjusts received voice. 100% is unchanged; 0% mutes it. Excessive amplification can distort loud received audio.<\/td><\/tr><\/tbody><\/table><\/div>\n<p>The phone&#8217;s <strong>media-volume buttons<\/strong> also affect listening volume. The app saves audio settings when changed and when you leave it. Hardware volume, headphones, and the selected Android audio route can still affect what you hear.<\/p>\n<\/section>\n<section id=\"android-vox\"><h2>Hands-free VOX operation<\/h2>\n<p>VOX automatically sends microphone audio when its level exceeds the trigger. Open <strong>Audio<\/strong> and select <strong>Enable VOX (hands-free transmit)<\/strong>. Set the trigger and delay, then return to <strong>Talk<\/strong> to use it.<\/p>\n<div class=\"b9x-table\"><table><thead><tr><th>Setting<\/th><th>Range \/ default<\/th><th>Adjustment<\/th><\/tr><\/thead><tbody><tr><td>VOX trigger<\/td><td>0.05\u201310.00% RMS \/ 1.00%<\/td><td><strong>Lower is more sensitive.<\/strong> Choose a value above idle background noise but below your normal speaking level.<\/td><\/tr><tr><td>VOX time-off delay<\/td><td>100\u201310000 ms \/ 1000 ms<\/td><td>Keeps sending briefly after your level drops below the trigger, helping bridge the pauses between words.<\/td><\/tr><\/tbody><\/table><\/div>\n<p>If VOX stays on in a quiet room, increase the trigger or reduce microphone gain. If normal speech does not trigger it, decrease the trigger and check microphone permission and gain. A one-second delay equals 1000 milliseconds.<\/p>\n<p>VOX transmission pauses on <strong>Server, Audio, and Messages<\/strong> so editing settings or composing messages does not accidentally transmit your speech. Return to <strong>Talk<\/strong> for voice operation. Incoming voice and spoken-message playback also inhibit VOX.<\/p>\n<div class=\"b9x-note\">Headphones are recommended for VOX. Speaker sound that reaches the microphone can otherwise cause unwanted triggering. Adjust the controls to your actual phone, audio route, and room noise.<\/div>\n<\/section>\n<section id=\"android-buffer\"><h2>Playback buffering for Wi-Fi and mobile data<\/h2>\n<p>The <strong>Playback cushion<\/strong> control is on Audio. It offers <strong>100\u2013400 ms<\/strong>, with an initial value of <strong>150 ms<\/strong>.<\/p>\n<p>Start at 150 ms. If received audio arrives unevenly on mobile data, try 200 ms, then 250 ms. Larger settings add listening delay. Connection quality also depends on signal strength, congestion, and the server&#8217;s connection.<\/p>\n<p>Buffering helps smooth uneven packet arrival; it cannot recreate speech that never reaches the phone or fix a sustained outage. Test with the same server and another known working client before changing several settings at once.<\/p>\n<\/section>\n<section id=\"android-messages\"><h2>Text messaging and screen names<\/h2>\n<ol><li>Open <strong>Messages<\/strong>.<\/li><li>Enter your <strong>screen name<\/strong> and tap <strong>Save<\/strong>. The initial name is Guest; choose something other users will recognize.<\/li><li>Connect to the B9X Voice Server if you are not already connected.<\/li><li>Enter a short message and tap <strong>Send Message<\/strong>.<\/li><li>Review the message history below. Entries show the sender and date\/time; your sent entries also show <strong>You<\/strong>.<\/li><\/ol>\n<p>The screen name is also saved when sending or leaving the app. History remains on the phone after restarting and can be scrolled to older entries. Clearing app data or uninstalling the app removes that local history.<\/p>\n<h3>Who receives a message?<\/h3>\n<p>Messages are broadcast to <strong>everyone connected to the same server<\/strong>, subject to the server allowing broadcasts for the credentials in use. They are not private, one-recipient messages. A screen name is a display label, not an authenticated identity.<\/p>\n<p>The chat uses a <strong>TMSG<\/strong> identifier to distinguish text chat from other broadcast types. Other clients need compatible TMSG support to show sender names and text correctly. An older client may show an encoded broadcast rather than a readable chat entry. Simply supporting B9X voice audio does not guarantee compatible named text chat.<\/p>\n<h3>Message length<\/h3>\n<p>Keep messages short. Screen names allow up to <strong>32 UTF-8 bytes<\/strong>\u2014up to 32 ordinary English characters, or fewer for some other characters. Message capacity depends on the name and text used, typically around <strong>100\u2013140 English characters<\/strong>. Unicode and punctuation are supported within that limit. Oversized messages are rejected with an explanation rather than silently shortened.<\/p>\n<p>A queued notice means the app accepted the message for sending. It is not a delivery or read receipt, and it does not prove every other user received the message. Repeated server echoes with the same message ID are not displayed as separate messages.<\/p>\n<\/section>\n<section id=\"android-speech\"><h2>Hear received messages spoken aloud<\/h2>\n<p>On Messages, select <strong>Enable text to speech<\/strong>. The app reads newly received messages in the form <strong>\u201cscreen name says: message.\u201d<\/strong> This option is saved for future sessions.<\/p>\n<p>Speech uses the phone&#8217;s <strong>Android text-to-speech engine<\/strong>; it does not need an OpenAI API key. If the status asks for an English voice, install one in the device&#8217;s text-to-speech settings. The chosen Android engine and voice determine whether a download or network connection is needed.<\/p>\n<ul><li>Only new received messages are read. Your outgoing messages, their echoes, stored history, and unrelated broadcast types are not read aloud.<\/li><li>Speech waits while voice is being sent or received.<\/li><li>If incoming voice starts during a spoken message, speech stops and retries that message after voice traffic is quiet.<\/li><li>VOX is inhibited during speech and briefly afterward to prevent the spoken message from being transmitted back through the microphone.<\/li><li>Manual PTT interrupts queued speech. Disconnecting or closing the app stops speech.<\/li><li>History and normal text messaging still work if speech is disabled or unavailable.<\/li><\/ul>\n<p>Spoken-message volume follows the app&#8217;s Speaker level from mute through 100%, together with Android media volume. Settings above 100% do not further amplify Android speech. The speaker needle measures received voice audio; it is not a separate speech-engine meter.<\/p>\n<\/section>\n<section id=\"android-reconnect\"><h2>Always Stay Connected and background operation<\/h2>\n<p>Select <strong>Always Stay Connected<\/strong> on Server to connect when the app opens. After a connection timeout or a detected loss, the app waits about <strong>one minute<\/strong> and attempts a fresh connection. Enable remembered credentials if you want startup connection to work after Android has restarted the app&#8217;s process.<\/p>\n<div class=\"b9x-table\"><table><thead><tr><th>Action<\/th><th>Behavior in this Android version<\/th><\/tr><\/thead><tbody><tr><td>Tap Disconnect<\/td><td>Closes the current session and stops its retries. The checkbox remains saved for the next app opening.<\/td><\/tr><tr><td>Press Android Back to close the app screen<\/td><td>Disconnects and stops the voice service.<\/td><\/tr><tr><td>Press Home<\/td><td>Leaves the voice service running. Tap the ongoing notification to return. Manual PTT is released.<\/td><\/tr><tr><td>Remove the app from Recent Apps<\/td><td>Stops its voice service.<\/td><\/tr><tr><td>Force-stop or Android kills the process<\/td><td>An orderly final disconnect cannot be guaranteed; the server must expire the session if necessary.<\/td><\/tr><\/tbody><\/table><\/div>\n<p>Android battery restrictions and other apps taking audio focus can affect background behavior. A notification indicates an ongoing session\/service, not a guarantee that every server connection is currently established. Check Talk for the actual connection state.<\/p>\n<\/section>\n<section id=\"android-privacy\"><h2>Saved settings and credentials<\/h2>\n<p>Server fields save with <strong>Save Settings<\/strong>, Connect, or when you leave the app screen. Audio controls save when adjusted. The screen name, text-to-speech preference, and message history are also retained.<\/p>\n<p>If <strong>Remember password and key on this device<\/strong> is selected, the credentials are encrypted using a device-bound Android Keystore key. Uncheck Remember to remove the saved credential entry. Revealing a field with Show does not change the server&#8217;s credentials.<\/p>\n<p>Clearing app data or reinstalling may require entering credentials again. Device-bound protected credentials are not intended to be copied to another phone. Data protection on the phone does not change the network security capabilities of the existing B9X Voice Server.<\/p>\n<p>The app does not provide OpenAI transcription or OpenAI speech generation. Spoken text messages use the selected Android speech engine. Remember that broadcast messages are shared with the server&#8217;s connected group.<\/p>\n<\/section>\n<section id=\"android-help\"><h2>Troubleshooting<\/h2>\n<details><summary>The app will not connect<\/summary><p>Confirm the actual server hostname\/IP, UDP port, password, and exact 32-character key. The default address 192.168.1.1 may be your router rather than your server. Start with a LAN test, then test remote access. For a remote server, confirm its public UDP port is reachable. Leave Local UDP Port at 0 initially.<\/p><\/details>\n<details><summary>It connects on Wi-Fi but not mobile data<\/summary><p>Use a publicly reachable hostname\/address rather than a private LAN address. Verify the server&#8217;s public forwarding and connection, and check whether the mobile network permits the UDP traffic. A working local connection does not prove the public connection path is available.<\/p><\/details>\n<details><summary>Connected, but I cannot hear anyone<\/summary><p>Turn up Android media volume and the app&#8217;s Speaker level. Check the headphones, Bluetooth route, or speaker being used. Have another client transmit and confirm that Stereo PCM matches the server&#8217;s format.<\/p><\/details>\n<details><summary>The microphone meter does not move<\/summary><p>Check microphone permission, microphone gain above 0%, and an active connection attempt\/session. Make sure another app or phone call is not holding audio focus. A disconnected idle app does not continuously monitor the microphone.<\/p><\/details>\n<details><summary>The microphone meter moves but nobody hears me<\/summary><p>Confirm Connected, then hold manual PTT or return to Talk with VOX enabled and correctly adjusted. Transmission is inhibited during incoming voice and spoken-message playback. On Server, Audio, and Messages, VOX transmission is paused.<\/p><\/details>\n<details><summary>VOX stays on or misses my speech<\/summary><p>Lower trigger values increase sensitivity; higher values reduce it. Adjust the trigger above idle noise and below your normal speech. Check microphone gain and use headphones. Increase the time-off delay if gaps between words cause premature release.<\/p><\/details>\n<details><summary>My text message is rejected or does not appear on another client<\/summary><p>Shorten the message or screen name if it exceeds the available length. Connect before sending, and confirm the server permits broadcasting. Other clients must support the same TMSG format. There is no delivery\/read receipt for proving reception by every client.<\/p><\/details>\n<details><summary>Text messages appear, but are not spoken<\/summary><p>Enable text to speech on Messages and check its status line. Install an English Android voice if requested. Check app Speaker level and Android media volume. Speech waits for a quiet voice channel and does not replay older history or read your outgoing messages.<\/p><\/details>\n<details><summary>Incoming audio is choppy or delayed<\/summary><p>Compare against a clean Wi-Fi\/LAN test. Improve reception and try a modest playback cushion increase. Larger buffers add delay; they cannot recover missing speech or fix an interrupted connection.<\/p><\/details>\n<details><summary>The app disconnects when I close it<\/summary><p>This is expected when you close with Back or remove the app from Recent Apps. Use Home if you want the ongoing voice service to continue, and tap the notification to return. Android may still limit background operation.<\/p><\/details>\n<p>For support, note your Android version, device model, app version, server port, Wi-Fi\/mobile-data connection, and the relevant settings or status message. Do not send your server password or encryption key.<\/p>\n<\/section>\n<footer class=\"b9x-footer\"><p><strong>B9X PTT Chat For Android<\/strong> \u00b7 B9X Electronics<\/p><p>These instructions describe the features and controls in the supplied Android version. Voice and text operation require a compatible B9X Voice Server and suitable network access. Device audio routing, Android background restrictions, and the chosen speech engine can affect operation.<\/p><\/footer>\n<\/article>\n","protected":false},"excerpt":{"rendered":"<p>Follow these instructions to install the app on your Android phone: If your phone differs than what I described, you will need to search the Internet or use AI for further instructions. B9X Electronics \u00b7 Mobile voice and messaging B9X PTT Chat For Android Your B9X Voice Server connection, on your Android phone. Join a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1787","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/b9xelectronics.com\/index.php?rest_route=\/wp\/v2\/pages\/1787","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/b9xelectronics.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/b9xelectronics.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/b9xelectronics.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/b9xelectronics.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1787"}],"version-history":[{"count":11,"href":"https:\/\/b9xelectronics.com\/index.php?rest_route=\/wp\/v2\/pages\/1787\/revisions"}],"predecessor-version":[{"id":1811,"href":"https:\/\/b9xelectronics.com\/index.php?rest_route=\/wp\/v2\/pages\/1787\/revisions\/1811"}],"wp:attachment":[{"href":"https:\/\/b9xelectronics.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1787"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}