在Android中,是否可以从我的应用程序中打开音乐应用程序,还是最好在我的应用程序内编写一个全新的音乐应用程序。我宁愿使用他们的应用程序,因为用户已经熟悉它。
可以通过intent启动其他应用程序,包括音乐应用程序。因此,你可以使用他们的应用程序,并在你的应用程序中使用一个intent来启动它。这将使用户能够继续使用他们熟悉的音乐应用程序。在Android中,是否可以从我的应用程序中打开音乐应用程序,还是最好在我的应用程序内编写一个全新的音乐应用程序。我宁愿使用他们的应用程序,因为用户已经熟悉它。
可以通过intent启动其他应用程序,包括音乐应用程序。因此,你可以使用他们的应用程序,并在你的应用程序中使用一个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);
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);
}
<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>
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path
name="external_files"
path="."/>
</paths>
有多种方法可以实现默认音频播放器,但这些方法是设备和操作系统特定的。
使用此代码片段,您可以获取默认音频播放器。
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();
}
你也可以尝试这个。
Intent intent = new Intent(MediaStore.INTENT_ACTION_MUSIC_PLAYER);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
startActivity(getContext(), intent, null)
。现在它像魔法一样工作了!谢谢!!如果这有任何区别,我是从适配器内部执行此操作的。 - Dan