android - 如何在我的音乐播放器中从文件管理器播放 mp3 文件?
Posted
技术标签:
【中文标题】android - 如何在我的音乐播放器中从文件管理器播放 mp3 文件?【英文标题】:android - how to play a mp3 file from file manager in my music player? 【发布时间】:2016-01-02 15:23:27 【问题描述】:我在 android studio 中创建了一个音乐播放器应用。当我运行它时,没有问题并且应用程序运行良好,但是当我尝试从文件管理器播放歌曲时,应用程序选择弹出窗口会显示我的应用程序。当我选择我的音乐播放器时,它会打开音乐播放器但不播放歌曲。只显示最后播放的歌曲。如何自动播放所选歌曲?我需要捕捉任何意图吗?
AndroidManifest.xml
<activity
android:name=".activities.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="content"/>
<data android:scheme="file"/>
<data android:mimeType="audio/*"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
MainActivity.java
public void onCreate(Bundle savedInstanceState)
sMainActivity = this;
action = getIntent().getAction();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
navigationMap.put(Constants.NAVIGATE_LIBRARY, navigateLibrary);
navigationMap.put(Constants.NAVIGATE_PLAYLIST, navigatePlaylist);
navigationMap.put(Constants.NAVIGATE_QUEUE, navigateQueue);
navigationMap.put(Constants.NAVIGATE_NOWPLAYING, navigateNowplaying);
navigationMap.put(Constants.NAVIGATE_ALBUM, navigateAlbum);
navigationMap.put(Constants.NAVIGATE_ARTIST, navigateArtist);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
panelLayout = (SlidingUpPanelLayout) findViewById(R.id.sliding_layout);
navigationView = (NavigationView) findViewById(R.id.nav_view);
View header = navigationView.inflateHeaderView(R.layout.nav_header);
albumart = (ImageView) header.findViewById(R.id.album_art);
songtitle = (TextView) header.findViewById(R.id.song_title);
songartist = (TextView) header.findViewById(R.id.song_artist);
setPanelSlideListeners(panelLayout);
navDrawerRunnable.postDelayed(new Runnable()
@Override
public void run()
setupDrawerContent(navigationView);
setupNavigationIcons(navigationView);
, 700);
if (RamUtils.isMarshmallow())
checkPermissionAndThenLoad();
else
loadEverything();
addBackstackListener();
【问题讨论】:
你能提供代码吗? @Ben_Gratvol 请检查代码 【参考方案1】:如何自动播放所选歌曲?
如果您的应用显示在选择器中,您必须正确设置<intent-filter>
。
然后,您需要做的就是从onCreate()
调用getIntent().getData()
(也可能是onNewIntent()
,具体取决于您在清单中处理任务的方式)。这将为您提供内容的Uri
,它与您在<intent-filter>
中的<data>
元素中输入的规范相匹配。然后,您可以使用现有的音乐播放逻辑播放该内容。
【讨论】:
以上是关于android - 如何在我的音乐播放器中从文件管理器播放 mp3 文件?的主要内容,如果未能解决你的问题,请参考以下文章