这句代码什么意思?for (String name : names) grammar.addWordToSlot("@Names", name, null, 1, "V=1");
 ---------------------------------------------------------------------------------------
 * Recognizer recognizer = new Recognizer(cdir + "/baseline11k.par");
 * // create and load a Grammar
 * Recognizer.Grammar grammar = recognizer.new Grammar(cdir + "/grammars/VoiceDialer.g2g");
 * // setup the Grammar to work with the Recognizer
 * grammar.setupRecognizer();
 * // fill the Grammar slots with names and save, if required
 * grammar.resetAllSlots();
 * for (String name : names) grammar.addWordToSlot("@Names", name, null, 1, "V=1");
 * grammar.compile();
 * grammar.save(".../foo.g2g");

解决方案 »

  1.   

    for (String name : names)
    这里面的names一定是这样定义的: List<String> names = new ArrayList<String>();
    意思就是将链表names遍历一遍,取出每一个name
    其实grammar.addWordToSlot("@Names", name, null, 1, "V=1")这一句实现的功能大家都熟悉,就是一个语音交互,比如语音拨号,语音重播、语音发短信,打开某个特定文件或者(app)等。
    name就是预先定义好的一个语音命令,names就是一个语音命令组。比如将语言拨号定义成“dial”,搜索定义成(search)等等 说到这里楼主应该明白这两句是什么意思了吧。
    祝你好运!
      

  2.   

    对于 android , 我是新手.没有这一句: List<String> names = new ArrayList<String>();
    但提示: names cannot  be resolved to a variablefor (String name : names)1) names 事先应付值, 如何给names 呢?2) 
      

  3.   

    以下这样,可以编译,但运行时, 会异常退出. 为什么, 请指导.
    InputStream audio = new MicrophoneInputStream(11025, 11025 * 5);
    String cdir = Recognizer.getConfigDir(null);
    Recognizer recognizer = new Recognizer(cdir + "/baseline8k.par");  //baseline11k.par
    Recognizer.Grammar grammar = recognizer.new Grammar(cdir
    + "/grammars/boolean.g2g");  //VoiceDialer.g2g
    grammar.setupRecognizer();
    grammar.resetAllSlots();

    // add...............
    ArrayList <String>names = new ArrayList<String>();
    names.add("A");
    names.add("B"); for (String name : names) grammar.addWordToSlot("@Names", name, null, 1, "V=1");
     grammar.compile();
     grammar.save("/extsd/foo.g2g");  //"/sdcard/"
    //add..............
    recognizer.start();
            .....
      

  4.   


    我是新手, 不是很明白. (我想要识别出 "A", "B", "C"等)
      

  5.   

    那与android没半毛关系。。找本基本语法看看吧,兄弟
      

  6.   


    直接在平板电脑上运行(安装.apk后). 不知如何看log.
      

  7.   

    首先开debug mode
    usb 连接
    adb 连接, 
    logcat...ddms
      

  8.   


    首先开debug mode <== 在什么里面开?
      

  9.   


    Settings-->Applications-->development-->USB debug这个checkbox