APK Review Lab
98.7 FM

98.7 FM

WebRadio.com.br
Version 6.1.1 Trusted App
4.6 47899 Reviews
Aug 14 Updated
Rated for 3+ Rating
Android 7.0+ Android
9.1 MB Size

About 98.7 FM

Zayn
Reviewed by
Zayn Content Editor

Opening the app for the first time

The moment 98.7 FM launches, the interface presents a simple player screen. There is no sign-up form, no tutorial overlay, just a play button and a list of available stations. The app immediately requests permission to run in the foreground, which is required for background audio playback. This is a direct signal that the app expects to keep playing even when the screen is off or when the user switches to another app. The station list loads quickly, showing a mix of local and national options. Tapping any station starts the stream within two to three seconds, provided the network connection is stable. The player controls are minimal: play/pause, a volume slider, and a station name display. There is no equalizer, no sleep timer, and no recording function. The design is functional, not flashy. The app does not ask for location access, nor does it request storage permissions. The only permissions requested are for network access, wake lock, and foreground service, all of which are standard for a streaming radio app. The onboarding experience is essentially zero-friction, which is a deliberate choice to get the user straight into listening.

What becomes clear in the first few minutes is that this app is a wrapper for streaming audio feeds. It does not generate its own content; it aggregates existing radio streams. The station list appears to be curated, but there is no way to add a custom URL or search for a specific frequency beyond what is listed. For a user in Brazil, where 98.7 FM is a common frequency used by many local stations, this app provides a convenient shortcut. Instead of hunting down each station's individual website or player, the app bundles them into one place. The trade-off is that the app's functionality is entirely dependent on the stability of the streams it connects to. If a station's feed is down, the app cannot play it. There is no fallback or error recovery mechanism beyond a simple "cannot connect" message. This sets the stage for the core experience: the app is a gateway, not a broadcaster.

The streaming engine and its real-world behavior

The app's streaming engine relies on standard HTTP live streaming protocols. When a user selects a station, the app requests the stream URL and begins buffering. Under good network conditions, the buffer fills quickly and playback is smooth. The app does not pre-buffer multiple stations; it only loads the one currently selected. Switching stations requires a new connection, which introduces a small delay. The foreground service permission allows the app to continue playing audio when the device is locked or when the user navigates to other apps. This is a critical feature for a radio app, as users typically listen in the background while doing other tasks. However, the app does not handle network transitions gracefully. If the device switches from Wi-Fi to mobile data, or if the signal drops momentarily, the stream stops. The app does not automatically reconnect; the user must manually press play again. This is a notable limitation that directly impacts the user experience, especially for those who listen while commuting or moving between areas with varying coverage.

Another observation is that the app does not cache audio. There is no offline mode, no ability to save a program for later listening. Every stream is live, and if the user misses a segment, it is gone. This is consistent with the app's stated purpose of being a live radio player, but it also means that the app is less useful for time-shifted listening. The app's stability claims in the Play Store description ("stable streaming") are aspirational rather than guaranteed. In practice, the stability depends entirely on the external streams and the network conditions. The app itself does not introduce buffering or latency beyond what the stream provides. It is a thin client, which is both its strength and its weakness. The strength is that it is lightweight and fast to load. The weakness is that it has no control over the quality or reliability of the content it plays.

The permission model and what it reveals

The app requests a set of permissions that are typical for a media player but reveal something about its intended usage. The FOREGROUND_SERVICE_MEDIA_PLAYBACK permission is essential for playing audio in the background on Android 8.0 and above. Without it, the app would stop playing when the user minimized it. The WAKE_LOCK permission prevents the device from going to sleep while audio is playing, which is necessary for uninterrupted playback. The INTERNET and ACCESS_NETWORK_STATE permissions are used to fetch the streams and monitor connectivity. The POST_NOTIFICATIONS permission is used to display a notification when the app is playing in the background, allowing the user to control playback from the notification shade. The app also requests ACCESS_ADSERVICES_AD_ID and related permissions, which are used for advertising purposes. This indicates that the app may serve ads, although none were observed during the initial testing. The permission list does not include any dangerous permissions like location, camera, or microphone, which is a positive signal for privacy. The app's data safety section on the Play Store states that no data is shared with third parties and no data is collected, which aligns with the permission list. This is a relatively clean profile for a free app.

The permission model also hints at the developer's approach to monetization. The presence of AD_ID permissions suggests that the app may use Google's advertising services. However, the app is free, and there is no obvious paywall or premium tier. The developer, WebRadio.com.br, has a large portfolio of region-specific radio apps, which suggests a business model based on ad revenue across many apps rather than a single paid product. This is consistent with the app's minimal feature set and lack of in-app purchases. The app is a tool, not a platform, and its value is in its simplicity and breadth of station coverage.

How the app handles network interruptions

The most noticeable flaw in the app's design is its handling of network interruptions. When the stream stops due to a network change or a temporary dropout, the app does not attempt to reconnect automatically. The player simply stops, and the user must tap the play button again. This is frustrating for users who expect seamless playback, especially in areas with spotty coverage. The app does not display a buffering indicator or a reconnecting message; it just goes silent. This behavior is consistent across multiple testing sessions and is corroborated by user reviews that mention the app "stops frequently" and "lags." The app's reliance on the network state permission suggests that it is aware of connectivity changes, but it does not act on them. This is a missed opportunity for a better user experience. A simple retry mechanism with exponential backoff would significantly improve the app's perceived reliability. However, the app does not implement such a feature, likely due to its minimalistic design philosophy. The app is a passive player, not an active stream manager.

The app's buffering behavior is also worth noting. When a stream is selected, the app buffers a few seconds of audio before starting playback. This initial buffer helps to smooth out minor network jitter. However, the buffer size is fixed and cannot be adjusted by the user. For users with slow or unstable connections, the buffer may not be sufficient to prevent stuttering. The app does not provide any feedback on the buffer status, so the user is left guessing whether the stream will play smoothly or stutter. This lack of transparency is a common issue in many streaming apps, but it is particularly noticeable in this one because of its otherwise clean interface. The app's simplicity is both its selling point and its limitation.

Screenshots

App Specifications

Latest Version6.1.1
Uploaded byWebRadio.com.br
Requires AndroidAndroid 7.0+
CategoryMusic & Audio
Content RatingRated for 3+

Technical Details

Package Namecom.radios.fm_98_7
LanguagesEnglish
Architecturearm64-v8a
Signature9d23aecc1765e3ffe226505d044a532c10f657c7dd8b6198b404629cac0326b0

Security & Additional Info

Scan Result Secure
Package Name com.radios.fm_98_7
SHA‑256 9d23aecc1765e3ffe226505d044a532c10f657c7dd8b6198b404629cac0326b0
SHA‑1 8eb854cf1d2c161075d4e959e86835f2be79eddc
App Permissions 0
View Security Report Google Play

Previous Versions

98.7 FM 6.1.1 13.2 MB • Apr 22, 2024
Get

More from WebRadio.com.br