2010-02-12 23 views
1

我想一个简单的问题,但我没有找到任何关于正确的做法。如何启动不同的程序?

我想从我的应用程序启动一个mediaplayer并发送播放器文件播放(流)。

自动选择与我处理文件的MIME类型相关的播放器会很好。

启动应用程序的唯一方法就是这一个。但我不知道是否有一个Android原生的方式。

Runtime r = Runtime.getRuntime(); 

    try { 
     if(child != null) { 
      child.destroy(); 
      child = null; 
     } 
     child = r.exec("player"); 
    } catch (Exception e) { 
     Log.e(TAG, "error: " + e.getMessage(), e); 
    } 

感谢

回答

3

请不要用你上面有在Android上列出的代码。

您将需要创建一个ACTION_VIEW意图描述文件的路径及其MIME类型。然后,拨打startActivity()Intent。幸运的是,设备上会有一个能够播放该文件的应用程序。

+0

thx CommonsWare,我会尽力弄清楚如何使用意图。是否有可能启动一个流?我的意思是,是否可以通过这种方式传递流?这是启动应用程序的唯一方法吗?在我的例子中没有直接的方法吗? – Andy 2010-02-12 21:47:06

+0

嘿,它再次。基于你的信息,我发现这个例子与谷歌:http://markmail.org/message/pfwpyaf7gkaqzdph#query:android%20intent%20ACTION_VIEW%20example+page:1+mid:pfwpyaf7gkaqzdph+state:results所以你的答案是非常有用的对我来说。 thx :) – Andy 2010-02-12 21:56:43

+0

我有其他问题。我试图通过使用意图启动一个特殊的视频播放器。我设置了MIME类型和videourl,像这样:intent.setDataAndType(Uri.parse(Videourl),“*/*”);现在Android问我选择什么节目来播放这个流。但它并不要求我要求像“视频”这样的MIME类型的确切应用程序。我如何可以a)更改Android中的mimetyps在选择“视频”时启动正确的应用程序或b)如何在不使用MIME类型的情况下直接启动应用程序。 thx P.S .:我使用android模拟器与android 2.1 – Andy 2010-02-13 16:59:54

0

在Android中启动其他应用程序有点奇怪,至少在我看来。通常通过创建一个Intent对象并将其传递给Context.startActivity()来完成此操作。根据你对其他应用程序的了解,你可以指定一个将要启动的类,或者让Android通过提供其他的代码来确定要为你运行什么,让我们说“不太具体”的信息。

您可能想要阅读the Developer guide关于意图和意图过滤器以及documentation of the class Intent,尤其是显式和隐式意向的解释。

+0

thx给你也是。与CommonsWare说的几乎一样。 – Andy 2010-02-12 21:47:57

相关问题