2013-03-21 579 views
3

我嘗試錄製聲音。我用Intent錄製聲音。但是,在一個設備上MediaStore.Audio.Media.RECORD_SOUND_ACTION返回錯誤:android MediaStore.Audio.Media.RECORD_SOUND_ACTION:找不到處理意圖的活動

這是我的代碼:

Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION); 
startActivityForResult(intent, RQS_RECORDING); 

這是我的錯誤:

No activity found to handle Intent { act=android.provider.MediaStore.RECORD_SOUND (has extras) }

什麼能是什麼原因?這是否表示該功能在某些設備上不可訪問? 如何檢查設備上是否存在RECORD_SOUND_ACTION?

+0

你用什麼設備? – vida 2013-03-21 11:25:51

+0

小型平板電腦Colorovo 7「City Tab with android 4.此時此刻市面上最便宜的一款,在其他設備上一切正常 – mira 2013-03-21 11:59:22

+1

Nexus 7上沒有任何活動 – njzk2 2013-09-18 08:56:18

回答

2

也許該設備沒有任何應用程序允許您錄製音頻。首先檢查它是否有默認錄音機。

根據另一篇文章(Samsung Charge RECORD_SOUND_ACTION Intent not returning when started for result),它也可能發生在其他設備上,也可能是一個錯誤。

即使您的設備有一個默認的錄音機如果該應用程序不不包括對RECORD_SOUND_ACTION意圖接收器,也沒有聲明其清單的任何活動,將處理指定的意圖這是可能的。

您可以通過實現自己的錄音機處理這個意圖,並在您的清單聲明這種方式(萬一你想):

<activity 
    android:name="com.test.AudioRecorder" 
    android:label="@string/app_name" > 
    <intent-filter> 
     <action android:name="android.provider.MediaStore.RECORD_SOUND" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 
1

試試這個代碼文件,這可以幫助你解決

try 
{ 
    Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW); 
    File file = new File(image.getAbsolutePath()); 
    String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(file).toString()); 
    String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); 

    myIntent.setDataAndType(Uri.fromFile(file), mimetype); 
    mContext.startActivity(myIntent); 
} 
catch (Exception e) 
{ 
    // TODO: handle exception 
    String data = e.getMessage(); 
} 
相關問題