2015-09-22 36 views
0

此代碼在很多設備上都可以正常工作。未找到活動發現處理意圖,在音頻播放器打開

但我有一些設備的用戶的一些報告:

Xperia L (C2104) 1 3,4% Droid Ultra (obake) 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% HUAWEI 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: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///storage/emulated/0/MyAudioFiles/file.mp3 typ=audio/mpeg }

這意味着這個設備沒有安裝默認的音頻播放器?

回答

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

相關問題