diff options
Diffstat (limited to 'MusicDemo/README.txt')
-rw-r--r-- | MusicDemo/README.txt | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/MusicDemo/README.txt b/MusicDemo/README.txt deleted file mode 100644 index 97a506e..0000000 --- a/MusicDemo/README.txt +++ /dev/null @@ -1,70 +0,0 @@ -Android Automobile sample -========================= - - -Integration points ------------------- - -MusicService.java is the main entry point to the integration. It needs to: - - - extend android.service.media.MediaBrowserService, implementing the media browsing related methods onGetRoot and onLoadChildren; - - start a new MediaSession and notify it's parent of the session's token (super.setSessionToken()); - - set a callback on the MediaSession. The callback will receive all the user's actions, like play, pause, etc; - - handle all the actual music playing using any method your app prefers (for example, the Android MediaPlayer class) - - update info about the playing item and the playing queue using MediaSession (setMetadata, setPlaybackState, setQueue, setQueueTitle, etc) - - handle AudioManager focus change events and react appropriately (eg, pause when audio focus is lost) - - declare a meta-data tag in AndroidManifest.xml linking to a xml resource - with a <automotiveApp> root element. For a media app, this must include - an <uses name="media"/> element as a child. - For example, in AndroidManifest.xml: - <meta-data android:name="com.google.android.gms.car.application" - android:resource="@xml/automotive_app_desc"/> - And in res/values/automotive_app_desc.xml: - <?xml version="1.0" encoding="utf-8"?> - <automotiveApp> - <uses name="media"/> - </automotiveApp> - - - be declared in AndroidManifest as an intent receiver for the action android.media.browse.MediaBrowserService: - - <!-- Implement a service --> - <service - android:name=".service.MusicService" - android:exported="true" - > - <intent-filter> - <action android:name="android.media.browse.MediaBrowserService" /> - </intent-filter> - </service> - - -Optionally, you can listen to special intents that notify your app when a car is connected/disconnected. This may be useful if your app has special requirements when running on a car - for example, different media or ads. See CarPlugReceiver for more information. - - -Customization -------------- - -The car media app has only a few customization opportunities. You may: - -- Set the background color by using Android L primary color: - <style name="AppTheme" parent="android:Theme.Material"> - <item name="android:colorPrimary">#ff0000</item> - </style> - -- Add custom actions in the state passed to setPlaybackState(state) - -- Handle custom actions in the MediaSession.Callback.onCustomAction - - - -Known issues: -------------- - -- Sample: Resuming after pause makes the "Skip to previous" button disappear - -- Sample: playFromSearch creates a queue with search results, but then skip to next/previous don't work correctly because the queue is recreated without the search criteria - -- Emulator: running menu->search twice throws an exception. - -- Emulator: Under some circumstances, stop or onDestroy may never get called on MusicService and the MediaPlayer keeps locking some resources. Then, mediaPlayer.setDataSource on a new MediaPlayer object halts (probably) due to a deadlock. The workaround is to reboot the device. - |