Android使用intent启动音乐播放器

Android使用intent启动音乐播放器,android,Android,是否可以在android中从我的应用程序中打开音乐应用程序,或者最好在我的应用程序中编写一个全新的音乐应用程序。我宁愿使用他们的,因为用户已经习惯了。我找到了一种方法 Intent intent = new Intent(); intent.setAction(android.content.Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse(YOUR_SONG_PATH), "audio/*"); startActivity(i

是否可以在android中从我的应用程序中打开音乐应用程序,或者最好在我的应用程序中编写一个全新的音乐应用程序。我宁愿使用他们的,因为用户已经习惯了。

我找到了一种方法

Intent intent = new Intent();  
intent.setAction(android.content.Intent.ACTION_VIEW);  
intent.setDataAndType(Uri.parse(YOUR_SONG_PATH), "audio/*");  
startActivity(intent);

要启动音乐播放器,请执行以下操作:

Intent intent = new Intent();  
intent.setAction(android.content.Intent.ACTION_VIEW);  
intent.setDataAndType(Uri.parse(YOUR_SONG_PATH), "audio/*");  
startActivity(intent);
Intent intent = new Intent(MediaStore.INTENT_ACTION_MUSIC_PLAYER);
startActivity(intent);

你也可以试试这个

Intent intent = new Intent();  
intent.setAction(android.content.Intent.ACTION_VIEW);  
intent.setDataAndType(Uri.parse(YOUR_SONG_PATH), "audio/*");  
startActivity(intent);
Intent intent = new Intent(MediaStore.INTENT_ACTION_MUSIC_PLAYER);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

有很多方法可以实现默认的音频播放器,但这些都是特定于设备和操作系统的

Intent intent = new Intent();  
intent.setAction(android.content.Intent.ACTION_VIEW);  
intent.setDataAndType(Uri.parse(YOUR_SONG_PATH), "audio/*");  
startActivity(intent);
使用此代码段,您可以获得默认的音频播放器

Intent intent = new Intent();  
intent.setAction(android.content.Intent.ACTION_VIEW);  
intent.setDataAndType(Uri.parse(YOUR_SONG_PATH), "audio/*");  
startActivity(intent);
try
    {
    Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW);
    File file = new File("audiofilepath"); 
    String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(file).toString());
    String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
    myIntent.setDataAndType(Uri.fromFile(file),mimetype);
    startActivity(myIntent);
    }
    catch (Exception e) 
    {
         e.printStackTrace();
    }

这适用于较旧版本,并且由于最新版本中的安全更新,您可能会遇到FileUriExposed异常。 要避免这种情况,请使用以下代码

Intent intent = new Intent();  
intent.setAction(android.content.Intent.ACTION_VIEW);  
intent.setDataAndType(Uri.parse(YOUR_SONG_PATH), "audio/*");  
startActivity(intent);
 try{
        File file = new File(filepath);
        String mimeType = "audio/*";
        Uri fileURI = FileProvider.getUriForFile(
                getApplicationContext(),
                getApplicationContext()
                        .getPackageName() + ".provider", file);
        Intent intent = new Intent();
        intent.setAction(android.content.Intent.ACTION_VIEW);
        intent.setDataAndType(fileURI, mimeType);
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        startActivity(intent);
    }catch (Exception e){
        Log.e(TAG,"-------------------------------------------------------FAILED TO PLAY SONG "+e);
    }
在AndroidManifest.xml中添加以下内容

Intent intent = new Intent();  
intent.setAction(android.content.Intent.ACTION_VIEW);  
intent.setDataAndType(Uri.parse(YOUR_SONG_PATH), "audio/*");  
startActivity(intent);
<provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="${applicationId}.provider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/provider_paths" />
</provider>

res/xml/

Intent intent = new Intent();  
intent.setAction(android.content.Intent.ACTION_VIEW);  
intent.setDataAndType(Uri.parse(YOUR_SONG_PATH), "audio/*");  
startActivity(intent);
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path
    name="external_files"
    path="."/>
</paths>


请告诉我在编写您的上述代码之后应该做些什么。您的帮助对我和其他人都是非常有益的。注意,此操作已被否决,取而代之的是CATEGORY\u APP\u MUSICMediaStore。INTENT\u action\u MUSIC\u PLAYER已被否决!!此答案现在已过时,因为此操作已被弃用。按照以下步骤学习如何使用Intent.CATEGORY\u APP\u MUSIC。如何检查媒体播放器应用程序是否在设备上可用这在Nexus 6上不起作用(在照片应用程序中打开)@nbarraille try audio/mp3而不是音频/*当我尝试这个Android Studio时,会说
startActivity()
需要上下文而不是意图。我的
compileSdkVersion
targetSdkVersion
是28。@但我看不到这样的方法startActivity(getContext(),intent,null)存在此API现在已过时。