android MediaStore.Audio.Media.RECORD_SOUND_操作:未找到处理意图的活动

android MediaStore.Audio.Media.RECORD_SOUND_操作:未找到处理意图的活动,android,android-intent,event-handling,record,audio,Android,Android Intent,Event Handling,Record,Audio,我试着录音。我用意图录音。但在一台设备上,MediaStore.Audio.Media.RECORD\u SOUND\u操作返回错误: 这是我的代码: Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION); startActivityForResult(intent, RQS_RECORDING); 这是我的错误: 找不到处理Intent的活动{act=android.provider.MediaStore

我试着录音。我用意图录音。但在一台设备上,MediaStore.Audio.Media.RECORD\u SOUND\u操作返回错误:

这是我的代码:

Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
startActivityForResult(intent, RQS_RECORDING);
这是我的错误:

找不到处理Intent的活动{act=android.provider.MediaStore.RECORD_SOUND(具有附加功能)}

原因可能是什么?这是否意味着某些设备无法访问该功能?
如何检查设备上是否存在录制声音的操作?

可能该设备没有任何允许您录制音频的应用程序。首先检查是否有默认的录音机

根据另一篇文章(),它也可能发生在其他设备上,可能是一个bug

即使您的设备有默认的录音机,如果该应用程序不包括录制声音\u操作的接收器,也不在其清单中声明任何将处理指定意图的活动,这也可能是可能的

您可以通过实现自己的录音机来处理此意图,并以这种方式在清单中声明它(以防万一):


请从文件中尝试此代码,这可能有助于解决此问题

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();
}

顺便问一下,您使用的是什么设备?小型平板电脑Colorovo 7“安卓4的城市标签。目前市面上最便宜的。在其他设备上一切正常。在Nexus 7上也没有发现任何活动这是一个非常糟糕的答案,不仅因为它离题了,而且因为它没有提供任何解释来解决OP的问题
if (sendIntent.resolveActivity(packageManager) != null) {
    startActivity(sendIntent)
}
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();
}