summaryrefslogtreecommitdiff
path: root/MusicDemo/README.txt
diff options
context:
space:
mode:
Diffstat (limited to 'MusicDemo/README.txt')
-rw-r--r--MusicDemo/README.txt70
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.
-