代码之家  ›  专栏  ›  技术社区  ›  David Hedlund

Android本机音乐播放器搜索意图

  •  1
  • David Hedlund  · 技术社区  · 16 年前

    在Android 2.1(至少)中的股票音乐播放器中,当前播放曲目的艺术家、专辑和曲目名称可以长时间单击,这会弹出一个上下文菜单“搜索” 使用:,使用指向不同应用程序的链接。

    更新

    我设法从自己的设备中提取日志,搜索艺术家,然后选择Google Listen完成操作:

    03-02 11:59:34.551 I/ActivityManager(   86): Displayed activity com.android.music/.MediaPlaybackActivity: 1758 ms (total 1953 ms)
    03-02 11:59:35.691 I/ActivityManager(   86): Starting activity: Intent { act=android.intent.action.CHOOSER cmp=android/com.android.internal.app.ChooserActivity (has extras) }
    03-02 11:59:36.781 I/ActivityManager(   86): Displayed activity android/com.android.internal.app.ChooserActivity: 1036 ms (total 1036 ms)
    03-02 11:59:38.191 I/ActivityManager(   86): Starting activity: Intent { act=android.intent.action.MEDIA_SEARCH flg=0x13000000 cmp=com.google.android.apps.listen/.SearchListActivity (has extras) }
    03-02 11:59:38.511 D/Listen  (  491): Request search results for http://lfe-alpo-gm.appspot.com/search?q=Finntroll
    

    我肯定会自己去做,但这对我来说是一件新鲜事。我非常感谢您的帮助。以上是否意味着只要我设置 MEDIA_SEARCH 意图作为活动的入口点,它将显示在选择列表中?

    1 回复  |  直到 16 年前
        1
  •  4
  •   David Hedlund    16 年前

    好吧 MEDIA_SEARCH 这是正确的选择。供参考:

    添加意图过滤器足以使应用程序显示在媒体播放器的选择列表中:

    <action android:name="android.intent.action.MEDIA_SEARCH" />
    

    然后可以按如下方式接收操作:

    final Intent queryIntent = getIntent();
    final String queryAction = queryIntent.getAction();
    
    if (MediaStore.INTENT_ACTION_MEDIA_SEARCH.equals(queryAction)) {
        String artist = queryIntent.getStringExtra(MediaStore.EXTRA_MEDIA_ARTIST);
        ...
    }