【问题标题】:Android, How do you launch the Default Music PlayerAndroid,如何启动默认音乐播放器
【发布时间】:2013-06-30 15:42:41
【问题描述】:

我想在 ICS/Jellybean 设备上启动默认音乐播放器。查看 android devloper 上的 API17,我无法弄清楚如何简单地构建一个意图来启动默认音乐播放器,而不是提示用户选择音乐播放器。如果用户已经设置了默认值,我发现后者对用户的干扰过于强烈。为什么每次都要提示他们输入?我不明白 >4 逻辑的那一部分。

在我的 >4 台设备上,我有多个播放器。我想简单地启动默认播放器,但我似乎无法正确理解意图。我继续弹出选择应用程序的弹出窗口。我需要在意图中使用组件吗?有什么帮助吗?

if(android.os.Build.VERSION.SDK_INT>=15){
    Intent intent=Intent.makeMainSelectorActivity(Intent.ACTION_MAIN,
    Intent.CATEGORY_APP_MUSIC);
    startActivity(intent);
}else{
    Intent intent = new Intent("android.intent.action.MUSIC_PLAYER");//Min SDK 8 and deprecated in API 17 for makeMainSelectoryActivity
    startActivity(intent);
}

【问题讨论】:

    标签: android android-intent


    【解决方案1】:

    启动以使他们选择玩家的提示具有“始终使用”和“使用一次”按钮。如果他们想始终使用同一个播放器,他们将始终第一次使用,并且入侵消失了。在他们完成之前,他们没有默认的音乐播放器。

    如果您的问题只是启动音乐播放器,请启动查看 mp3 MIME 类型的意图。然后,用户可以从播放 MP3 的应用程序子集中选择他们的应用程序,始终点击使用,然后选择器将不再显示。

    【讨论】:

    • 如果你有谷歌播放音乐,包名是"com.google.android.music"。考虑到应用程序安装在手机上,这是否可以在所有情况下使用。
    • 不,它不能。它不会存在于旧手机上,因为它可能还没有被移植回来那么远。它可能没有默认安装,因为 OEM 不会安装 Google 的所有软件。与 Google Play 和 Google Play 服务的其余部分一样,如果 OEM 不向 Google 付款,则 OEM 无法安装它。它也可能不适用于自定义 ROM,因为我怀疑他们是否愿意安装它。最后它可能已被用户卸载。除非您控制硬件,否则切勿假设安装了具有给定名称的应用程序。
    • 同意。所以最好的选择是让用户自己选择媒体播放器。
    • 实际上,由于某种原因,总是使用和使用一次似乎不起作用。无论您选择什么,提示总是返回。还有许多其他人发布了相同效果的消息。我将制作一个单独的独立按钮,看看 makeMainSelectorActivity 是否真的选择并记住了 always 部分,但到目前为止,我粘贴的上面的代码还没有工作......总是提示......总是...... ..太烦人了
    • 重做一个非常简单的项目。事实上,我使用了你的第一个应用程序的 Android 源代码。当用户按下发送按钮时,我将上面的代码放在了 SendMessage 中。每次按下按钮时,无论选择一次或总是选择“使用完成操作”,都会提示 Android 提示。如果您使用“始终”,它永远不会记住之前的选择。当然必须有一种机制,它实际上按预期工作,并且总是意味着总是,并且下次存储和使用它?情况似乎并非如此,它的意图非常简单。
    【解决方案2】:

    您必须使用包名来启动特定的应用程序

    以下内容不适用于所有设备,因为默认音乐播放器的包名称可能不同。 不是一个好主意,我不会推荐以下内容,因为您的应用不会针对特定手机

      Intent i = new Intent();
      PackageManager manager = getPackageManager();
      i = manager.getLaunchIntentForPackage("com.sec.android.app.music");
      // in my case  the package name is com.sec.android.app.music
      i.addCategory(Intent.CATEGORY_LAUNCHER);
      startActivity(i);
    

    您也不应该让用户选择要启动的应用程序。不同的用户可能喜欢使用安装在手机上的不同媒体播放器。 我建议您让用户自行选择启动媒体播放器。

    【讨论】:

    • 这是一个可怕的想法。首先,其次是三星娱乐公司。这仅适用于三星手机,甚至不适用于所有手机(它们并不都使用相同的播放器,每个三星型号都有不同的软件集)。
    • @GabeSechan 同意。是的,我提到在我的情况下,包名称是“com.sec.android.app.music”。我还建议将使用媒体播放器的选择权留给用户。
    • 如果您始终选择“完成使用操作”将保留先前的选择,我会发生这种情况。即使在同一个应用程序中,它似乎也没有这样做。无论选择“仅一次”还是“始终”,它都会继续弹出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多