我正在尝试使用以下代码从我的应用启动Google语音搜索.它在Nexus One上运行良好,其中Google Voice Search是一个下载的应用程序,但它不适用于我预装的Galaxy Nexus.当它到达getLaunchIntentForPackage时,结果为NULL.任何人都可以帮忙吗?
Intent i = new Intent(Intent.ACTION_MAIN);
PackageManager manager = getPackageManager();
try {
i = manager.getLaunchIntentForPackage("com.google.android.voicesearch");
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
小智 5
我遇到了完全相同的问题.这似乎是谷歌在ICS中打包语音组件的方式造成的.它不再是一个独立的应用程序了.它通过常规搜索应用程序集成到搜索栏中.
修复非常简单:
Intent intent = new Intent(RecognizerIntent.ACTION_WEB_SEARCH);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
我通过本教程发现了更多关于一般语音识别的内容:http: //www.jameselsey.co.uk/blogs/techblog/android-how-to-implement-voice-recognition-a-nice-easy-tutorial/
那里有一些代码来验证语音识别器是否已安装:
PackageManager pm = getPackageManager();
List<ResolveInfo> activities = pm.queryIntentActivities(
new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
if (activities.size() == 0)
{
speakButton.setEnabled(false);
speakButton.setText("Recognizer not present");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2140 次 |
| 最近记录: |