我的应用程序中有一个语音识别部分来捕获用户的语音输入.
这就是我的工作
Intent voiceIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); startActivityForResult(voiceIntent,REQUEST_CODE);
这在大多数设备上工作正常,但现在由于平板电脑越来越流行,其中一些没有麦克风,它会引发错误
W/dalvikvm( 408): threadid=1: thread
exiting with uncaught exception
(group=0x40015560) E/AndroidRuntime(
408): FATAL EXCEPTION: main
E/AndroidRuntime( 408):
android.content.ActivityNotFoundException:
No Activity found to handle Intent {
act=android.speech.action.RECOGNIZE_SPEECH
(has extras) } E/AndroidRuntime(
408): at
android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408)
…..
所以我想在让用户访问语音输入功能之前检测麦克风是否存在.如何检测设备上是否有麦克风.
谢谢.
解决方法
PackageManager pm = getPackageManager(); boolean micPresent = pm.hasSystemFeature(PackageManager.FEATURE_MICROPHONE);
Android API参考:hasSystemFeature