android-如何在我的音乐播放器中从文件管理器播放mp3文件?

android-如何在我的音乐播放器中从文件管理器播放mp3文件?,android,android-studio,Android,Android Studio,我已经在android studio中创建了一个音乐播放器应用程序。当我运行它时,没有问题,应用程序运行良好,但当我尝试从文件管理器播放歌曲时,应用程序选择弹出窗口显示我的应用程序。当我选择音乐播放器时,它会打开音乐播放器,但不会播放歌曲。只显示最后播放的歌曲。如何自动播放所选歌曲?我有什么需要捕捉的意图吗 AndroidManifest.xml <activity android:name=".activities.MainActivity" androi

我已经在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>
如何自动播放所选歌曲

如果您的应用程序显示在选择器中,则必须设置正确的


然后,您需要做的就是从
onCreate()
调用
getIntent().getData()
(可能还有
onNewIntent()
,具体取决于您在清单中处理任务的方式)。这将为您提供内容的
Uri
,该Uri将与您在
中放入
元素的规范相匹配。然后,您可以使用现有的音乐播放逻辑播放该内容。

您能提供代码吗?@Ben_Gratvol请检查代码
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();
}