Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android,如何启动默认音乐播放器_Android_Android Intent - Fatal编程技术网

Android,如何启动默认音乐播放器

Android,如何启动默认音乐播放器,android,android-intent,Android,Android Intent,我想在ICS/Jellybean设备上启动默认音乐播放器。看看android devloper上的API17,我可以;t设法弄清楚如何简单地建立一个启动默认音乐播放器的意图,而不是提示用户选择一个音乐播放器。我发现,如果用户已经设置了默认值,那么后者会对用户造成过度干扰。为什么每次都要提示他们输入?我不理解>4逻辑的那一部分 在我的>4台设备上,我有多个播放器。我想简单地启动默认播放器,但我似乎无法获得正确的意图。我继续获得弹出窗口以选择应用程序。我是否需要在意图中使用组件?需要帮忙吗 if(a

我想在ICS/Jellybean设备上启动默认音乐播放器。看看android devloper上的API17,我可以;t设法弄清楚如何简单地建立一个启动默认音乐播放器的意图,而不是提示用户选择一个音乐播放器。我发现,如果用户已经设置了默认值,那么后者会对用户造成过度干扰。为什么每次都要提示他们输入?我不理解>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);
}

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

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

  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);

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

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


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

这是一个可怕的想法。首先,sec是三星娱乐公司。这只适用于三星手机,甚至不适用于所有手机(它们不都使用同一个播放器,每款三星手机都有不同的软件)。@Gabeschen表示同意。是的,我提到在我的例子中,包名是“com.sec.android.app.music”。我还建议将使用媒体播放器的选择权留给用户。如果您选择“始终”,则“完成使用操作”将保留以前的选择,则会出现这种情况。即使在同一个应用程序中,它似乎也不能做到这一点。无论选择“仅一次”或“始终”,它都会继续弹出。如果您有google play music,则软件包名称为
“com.google.android.music”
。考虑到该应用程序已安装在手机上,这是否可以在所有情况下使用。不,它不能。它不会出现在旧手机上,因为它可能还没有移植到那么远的地方。默认情况下,它可能没有安装,因为OEM并没有安装谷歌的所有软件。就像谷歌Play和谷歌Play的其他服务一样,如果OEM不向谷歌付款,OEM就不能安装它。它也可能不适用于定制ROM,因为我怀疑他们是否可以安装它,如果他们愿意的话。最后,用户可能已经卸载了它。除非你控制硬件,否则不要假设安装了具有给定名称的应用程序。同意。因此,最好的选择是让用户选择自己选择的媒体播放器。实际上,出于某种原因,“始终使用”和“使用一次”似乎不起作用。无论您选择什么,提示始终返回。还有许多其他人也发布了类似的消息。我将制作一个单独的独立按钮,看看MakeMainSelector活动是否真的选择并记住了always部分,但到目前为止,它与我粘贴的上面的代码完全不起作用……总是提示……总是……非常烦人重新做一个非常简单的项目。事实上,我使用了Android的源代码作为你的第一个应用。当用户按下Send按钮时,我将上面的代码放在SendMessage中。每次按下按钮时,android都会提示“使用完成操作”,而不考虑拾取一次或始终。如果您使用“始终”,它将永远不会记住以前的选择。当然,必须有一个机制,在这个机制中,它实际上是按照预期的方式工作的,并且总是意味着总是,它下次存储并使用它?事实似乎并非如此,这是一个非常简单的意图。