DUDU-Meng
Android uses the MediaSession api to share metadata from music players like spotify, AIMP or "generic music".
Dudu (or FYT) create the FM player. When you recieve the RDS info and you have the frequency, PT info, station logo, etcetera, you can easily push that into the MediaSession api, thereby providing it to the "generic music" widget.
Same for BT music. BT uses AVRCP to provide metadata, control and album art. You simply have that in the BT section of the music app. Also there you can push this info into the MediaSession api, thereby again providing it to the "generic widget".
Your remark "If a single generic music app could handle all functions, there would be no need to integrate with other players." is not correct. If you use the "generic widget", mediaplayers supporting that MediaSession api still display correctly in the generic widget.
It is all about the extra step to either push the radio info (RDS, logo, frequency, station name) or the AVCRP info (already inside your software) to the MediaSession api.
The specific integration for Spotify, AIMP etcera gives extra control in the widget, not extra info.
And of course the specific integration means that if you push Start after reboot/deep sleep, it knows which application to open (in the background) to start the music.
But this entire thread is only about the possibility of the info displayed. Your software receives all the info (in another format) and can simply push it forwards.