在音频播放器打开

时间:2015-09-22 13:10:12

标签: android android-intent

此代码适用于许多设备。

但我有一些设备用户的报告:

  

Xperia L(C2104)1 3,4%Droid Ultra(对照)1 3,4%Droid MAXX   (obake-maxx)2 6,9%Moto E(condor_cdma)1 3,4%Moto G(falcon_umts)     2 6,9%MOTO E(condor_umts)2 6,9%华为H881C(hwh881c)1 3,4%   Galaxy Tab3 7.0(lt02ltespr)1 3,4%Nexus 4(mako)1 3,4%Hydro EDGE   (C5215)2 6,9%Galaxy Young2(young2nfc3g)1 3,4%Galaxy Core Prime   (cprimeltemtr)1 3,4%Xperia Z2(D6503)1 3,4%Z667(demi)1 3,4%   LG Power(y50c)3 10,3%Xperia tipo(ST21a)3 10,3%Galaxy Grand   Prime(grandprimelteaio)1 3,4%Moto G(falcon_cdma)4 13,8%

在这段代码中播放设备音频播放器中的音频:

final File file = new File(mFileName);
intent.setDataAndType(Uri.fromFile(file), "audio/mpeg"); 
startActivity(intent);

错误:

  

android.content.ActivityNotFoundException:找不到要处理的Activity   意图{act = android.intent.action.VIEW   dat = file:///storage/emulated/0/MyAudioFiles/file.mp3 typ = audio / mpeg}

这意味着此设备没有安装默认音频播放器?

1 个答案:

答案 0 :(得分:0)

尝试此操作以启动活动,可能是您提供的mimetype未正确处理。

try
{
    Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
    File file = new File(mFileName); 
    String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(file).toString());
    String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
    intent.setDataAndType(Uri.fromFile(file),mimetype);
    startActivity(intent);
}
catch (Exception e) 
{
    // TODO: handle exception
}

也许您还需要拥有WRITEREAD外部权限(如果用户在SD卡上安装您的应用),但我不确定这一点,不应该需要我想。

似乎是这个的重复:Trying to play mp3 ActivityNotFoundException on certain devices