使用Intent.createChooser选择音频文件在某些手机上无法正常工作

3
我即将完成一项使用Android技术的项目,但是当我们拿到新设备测试应用程序时遇到了一点问题。
我正在使用Android 1.6进行编程,我的两个设备分别是:
HTC Incredible-Verizon(Android 2.2) Samsung Galaxy S-T-Mobile(Android 2.1更新1)
应用程序的一个部分允许用户使用以下方式选择已记录的音频文件:
// Select a recording
i = new Intent();           
i.setAction(Intent.ACTION_GET_CONTENT);
i.setType("audio/*");
startActivityForResult(Intent.createChooser(i, "Select audio file"), Enums.REQUEST_CODE_SELECT_ATTACHMENT);

选择完成后将调用onActivityResult。

if (resultCode == RESULT_OK && Enums.REQUEST_CODE_SELECT_ATTACHMENT == requestCode)) 
{
    // do something here
}
else
{
    //ResultCode comes back as RESULT_CANCELED
}

这在我编写原始应用程序的设备(HTC Incredible - Verizon)上运行良好。

然而,在使用三星Galaxy S(T-Mobile)时,第一个选择对话框打开(音乐播放器|语音记录器),但从那里开始没有什么作用。

如果我选择音乐播放器,则不会列出任何录音(在HTC上,我可以选择我的录音或随手机一起发货的音乐曲目)。

如果我选择语音记录器,则返回到我的onActivityResult方法,并显示一个toast消息,显示“消息文件已达到限制”。

有人能提供一些见解吗? 任何帮助都将不胜感激!

谢谢!

1个回答

2

Galaxy S的音频子系统在2.1版本中出了很多问题。例如,Skype无法在这些设备上使用。我发现2.2版本解决了很多问题。

你可以尝试在录音前调用AudioManager.setMode()将模式设置为MODE_IN_CALL。此外,你可以查看一些开源代码,看看它们是否解决了这个特定的问题(例如,Ringdroid)。

有很多关于Galaxy S音频不按规格工作的信息(例如,扬声器电话路由非常糟糕)。

祝好运!


谢谢,我一直在等待是否有其他评论,但我会将其标记为已回答。我无论如何都不能升级我的Galaxy S固件,因为你必须使用Kies来完成,而我不想以任何方式越狱手机。 Kies软件(2.0)似乎不支持该手机... - tribe84
如何将 AudioManager 的模式设置为? - sheetal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接