title: Play song on default music player - android
body: <p>My app show list of song from sd card. I want to be able to play the song on the default player. I've got all the data about the song: id, title, album, artist, path...</p>
  
  <p>Is there a way to launch the default player to play the song?</p>
  
  <p><strong>What I've tried:</strong></p>
  
  <ol>
  <li><p>Using <code>Intent.CATEGORY_APP_MUSIC</code>. I can launch the default player, but can't set the song.
  <code>Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_MUSIC)</code> open the default music app. 
  However<code>intent.setData(Uri.withAppendedPath(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, id))</code> throws exception that intent not found.</p></li>
  <li><p>Using deprecated <code>MediaStore.INTENT_ACTION_MUSIC_PLAYER</code>. Activity not found.
  <code>Intent(MediaStore.INTENT_ACTION_MUSIC_PLAYER).setDataAndType(Uri.fromFile(songFile), "audio/*")</code></p></li>
  <li>Using <code>INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH</code>. Launch the search, but not the song, says couldn't prepare mix on Play music. However, it works from Google now, so it may be the key.
  <code>Intent(MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH).putExtra(SearchManager.QUERY, name)</code></li>
  <li>Using <code>ACTION_VIEW</code>. it works but it launch a compact version of the player, and I want the full player.</li>
  </ol>
  
  <p><img src="https://i.imgur.com/OrUfwjU.png" alt="compat view"></p>
  
  <p><strong>Note:</strong> I want to launch <strong>External player</strong>, not in my app.</p>
  
  <p><strong>Update</strong>: Looks like Google Now hardcoded Play Music and Youtube support.</p>