2015-04-01 39 views
0

我有一個使用VideoView和MediaController類播放MP4視頻的應用程序。檢查Android上安裝的視頻播放器

我想添加到我的應用程序的外部視頻播放器的支持。我想要做的是顯示玩家列表,並允許用戶選擇其中一個或繼續使用內部應用播放器。

爲了顯示我用這個代碼的球員名單:

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.parse(f.getFileName()), "video/*"); 
startActivity(Intent.createChooser(intent, "Choose player")); 

,但我不知道如何讓用戶與我的應用程序繼續,如果他不想使用其中之一。

我該如何做這個選擇?

羅伯託

回答

1

你可以建立自己的列表使用

final Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.parse(f.getFileName()), "video/*"); 

final List<ResolveInfo> appList = context.getPackageManager().queryIntentActivities(intent , PackageManager.PERMISSION_GRANTED); 

你可以得到每個項目的更多信息:

for (ResolveInfo resolveInfo : appList) { 


      try { 
       ApplicationInfo ai =context.getPackageManager().getApplicationInfo(resolveInfo.activityInfo.packageName, 0); 
       // your code here 
      } catch (NameNotFoundException e) { 
       e.printStackTrace(); 
      } 
     } 

要安裝ch只是找到應用程序,在你的情況下,你可以使用:

// for your list you must remember Package name for each item 
pn = resolveInfo.activityInfo.packageName; 

//after user make selection, get selected PackageName and start desired app with your data. 
Intent IntentLaunch = context.getPackageManager().getLaunchIntentForPackage(pn); 
IntentLaunch.setAction(Intent.ACTION_VIEW); 
IntentLaunch.setDataAndType(Uri.parse(f.getFileName()), "video/*"); 
IntentLaunch.setData(mData /* data that you want to pass to app*/); 
startActivity(IntentLaunch); 
+0

一旦用戶從列表中選擇一個項目,我怎麼能啓動相關的應用程序? – 2015-04-01 20:35:08

+0

你可以看到最後一部分,我剛剛添加它,我希望這會幫助你:) – anopid 2015-04-02 07:49:26

+0

它'很好,謝謝你! – 2015-04-15 01:20:40