标签:staf 插件开发 stafcommandparser stafserviceinterface
开发STAF插件,主要是实现STAFServiceInterfaceLevel30接口,实现init、term、acceptRequest三个方法即可,根据名称可以得知:一个为初始化方法,一个为销毁方法,一个为处理请求方法。
举个例子,我们可以在init中初始化一个handle,然后再term中销毁这个handle
try { fServiceName = info.name; fHandle = new STAFHandle("STAF/Service/" + info.name); } catch (STAFException e) { return new STAFResult(STAFResult.STAFRegistrationError, e .toString()); }
try { unregisterHelpData(kDeviceInvalidSerialNumber); // Un-register the service handle fHandle.unRegister(); } catch (STAFException ex) { return new STAFResult(STAFResult.STAFRegistrationError, ex .toString()); }
// QUERY parser fQueryParser = new STAFCommandParser(); // STAFCommandParser.VALUENOTALLOWED 表示请求时不能给 QUERY传一个值 fQueryParser.addOption("QUERY", 1, STAFCommandParser.VALUENOTALLOWED); //STAFCommandParser.VALUEREQUIRED 表示请求时可以给 NAME传一个值,但不是必须的 fQueryParser.addOption("NAME", 1, STAFCommandParser.VALUEALLOWED); //STAFCommandParser.VALUEREQUIRED 表示请求时必须给 EDUCATION传一个值 fQueryParser.addOption("EDUCATION", 1, STAFCommandParser.VALUEREQUIRED); // 这个表明你需要NAME 和 EDUCATION , 但不能两个都有 fQueryParser.addOptionGroup("NAME EDUCATION", 0, 1); // 如果你指定了 NAME 或者 EDUCATION , QUERY是必须的 fQueryParser.addOptionNeed("NAME EDUCATION", "QUERY"); // 如果你指定了QUERY, 需要NAME 或者 EDUCATION fQueryParser.addOptionNeed("QUERY", "NAME EDUCATION");
此函数接收RequestInfo参数,通过获取request来获取请求的类型,以便来判断如何处理请求
String lowerRequest = info.request.toLowerCase(); StringTokenizer requestTokenizer = new StringTokenizer(lowerRequest); String request = requestTokenizer.nextToken(); // Call the appropriate method to handle the command if (request.equals("run")) return handleRun(info); else if (request.equals("helloworld")) return handleHello(info); else { return new STAFResult(STAFResult.InvalidRequestString, "Unknown widebright Service Request: " + lowerRequest); }
获取传入参数后就可以根据自己的想法来处理了,在最终,你需要返回STAFResult来作为处理的结果.
当你的扩展类完成后,下面一步就是打包,你可以参考“Ant打包部署STAF插件”来进行部署,此处不再详说
示例下载:http://download.csdn.net/detail/sogouauto/8556687
转载请注明:http://blog.csdn.net/sogouauto
探索测试奥义,交流测试技术,欢迎关注“搜狗测试”
标签:staf 插件开发 stafcommandparser stafserviceinterface
原文地址:http://blog.csdn.net/sogouauto/article/details/44829225