实现Android语音识别服务接口 RecognitionService的方法

之前的一篇文章介绍过SpeechRecognizer类,该类可以作为对外的一个接口,并通过Intent传递一个ComponentName获取可支持语音识别的功能的服务,一般的用户手机中如果安装了语音识别的一些软件,就会拥有这样的能力,但是如果开发者希望自己通过某公司的sdk集成自己的语音识别服务,那么就需要实现RecognitionService这个类。

这个类是个抽象类,需要开发者完成其中的几个抽象方法。下面的代码注释中对每个方法进行了说明。

<pre name="code" class="java">public class BDRecognitionService extends RecognitionService {

    @Override
    public void onCreate() {
        super.onCreate();
        // 在调用服务时进行一次
    }

    @Override
    protected void onStartListening(Intent recognizerIntent, Callback mCallback) {
      //这个方法具体实现了第三方sdk的接入,

 //recognizerIntent 携带了上层传入的参数
//mCallback 需要将第三方sdk的结果回调给该接口,是上层与第三方sdk的桥梁
} @Override
protected void onCancel(Callback listener)
 { //注销 }
@Override
public void onDestroy()
{ //销毁 super.onDestroy(); }
@Override
 protected void onStopListening(Callback listener)
{ //暂停 }}


Callback的的接口有以下几个

public class Callback {
        private final IRecognitionListener mListener;

        private Callback(IRecognitionListener listener) {
            mListener = listener;
        }

        public void beginningOfSpeech() throws RemoteException {
            if (DBG) Log.d(TAG, "beginningOfSpeech");
            mListener.onBeginningOfSpeech();
        }

        public void bufferReceived(byte[] buffer) throws RemoteException {
            mListener.onBufferReceived(buffer);
        }

        public void error(int error) throws RemoteException {
            Message.obtain(mHandler, MSG_RESET).sendToTarget();
            mListener.onError(error);
        }

        public void partialResults(Bundle partialResults) throws RemoteException {
            mListener.onPartialResults(partialResults);
        }

        public void readyForSpeech(Bundle params) throws RemoteException {
            mListener.onReadyForSpeech(params);
        }

        public void results(Bundle results) throws RemoteException {
            Message.obtain(mHandler, MSG_RESET).sendToTarget();
            mListener.onResults(results);
        }

        public void rmsChanged(float rmsdB) throws RemoteException {
            mListener.onRmsChanged(rmsdB);
        }
    }

之后会有一篇文章将一个实现了百度语音识别sdk的该服务代码展示出来。

实现Android语音识别服务接口 RecognitionService的方法

时间: 2024-10-09 22:54:48

实现Android语音识别服务接口 RecognitionService的方法的相关文章

Android 序列化对象接口Parcelable使用方法

什么是Parcelable ? Parcelable,定义了将数据写入Parcel,和从Parcel中读出的接口.一个实体(用类来表示),如果需要封装到消息中去,就必须实现这一接口,实现了这一接口,该实体就成为"可打包的"了. Parcelable 传递对象 Android序列化对象主要有两种方法: 1.实现Serializable接口,实现Serializable接口是JavaSE本身就支持的; 2.实现Parcelable接口,Parcelable是Android特有的功能,效率比

(转)Android 序列化对象接口Parcelable使用方法

http://blog.csdn.net/zpf8861/article/details/39400725

在Ubuntu为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口(老罗学习笔记4)

在上两篇文章中,我们介绍了如何为Android系统的硬件编写驱动程序,包括如何在Linux内核空间实现内核驱动程序和在用户空间实现硬件抽象层接口.实现这两者的目的是为了向更上一层提供硬件访问接口,即为Android的Application Frameworks层提供硬件服务.我们知道,Android系统的应用程序是用Java语言编写的,而硬件驱动程序是用C语言来实现的,那么,Java接口如何去访问C接口呢?众所周知,Java提供了JNI方法调用,同样,在Android系统中,Java应用程序通过

Android中 服务里的方法抽取成接口

1 写个类继承Service 重写 onBind方法 返回一个IBinder 对象(传递到连接成功时用) 2 服务中 写一个内部类 继承IBinder 并且实现一个接口(用于抽取方法)继承IBinder 是可以在1步骤中返回这个内部类的对象,内部类的对象可以调用服务中的其它方法.在实现接口的方法中 调用服务的方法. 3 写一个类 实现ServiceConnection服务连接,重写 连接成功 和连接失败的方法 ,连接成功时会传入一个IBinder 对象,就是上面那个内部类对象,这样就通过这个对象

百度Android语音识别SDK语义理解与解析方法

百度语义理解开放平台面向互联网开发者提供自然语言文本的解析服务,也就是可以根据文本的意图解析成相应的表示. 为了易于人阅读,同时也方便机器解析和生成,意图表示协议采用 json 语言进行描述,采用 gb18030 编码. json 语言的基本概念: 1.属性名/属性值 即键值对(key-value) 2.数组 在 json 中是"[]"括起来的内容,数据结构为 ["value1","value2",...],取值方式和所有语言中一样,使用索引获取

【Android应用开发技术:网络通信】网络服务可发现使用方法

作者:郭孝星 微博:郭孝星的新浪微博 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells 下面我们来演示一下如何使用Android的NSD服务,文章最后会给出工程源码. 一 注册NSD服务 1.1 创建NsdServiceInfo对象 NsdServiceInfo对象包含的信息可以帮助其他设备决定是否要连接到我们所提供的服务. 我们会为NsdServiceInfo

[Android]蓝牙相关接口及方法

首先,要操作蓝牙,先要在AndroidManifest.xml里加入权限 <uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permissionandroid:name="android.permission.BLUETOOTH" /> 然后,看下api,Android所有关于蓝牙开发的类都在android.bluetooth包下,共有8个类

Android语音识别功能使用总结

Android引入了对语音识别的支持.语音识别主要位于android.speech包中,主要的类包括SpeechRecognizer.RecognitionService.RecognizerIntent.RecognizerResultsIntent.RecognitionListener等类和接口. SpeechRecognizer提供了接入语音识别服务的接口,下面是SpeechRecognizer的常用方法: <span style="font-size:18px;">

谈谈-Android中的接口回调技术

Android中的接口回调技术有很多应用的场景,最常见的:Activity(人机交互的端口)的UI界面中定义了Button,点击该Button时,执行某个逻辑. 下面参见上述执行的模型,讲述James对Android接口回调技术的理解(结合前人的知识和自己的实践). 使用一个比喻很形象地说明:客户端有个疑问打电话请教服务端,但服务端无法现场给出解答,相互之间约定:服务端一旦有答案,使用电话的方式反馈给客户端. 以上有三个主体:客户端.服务端和接口(方式). 接口回调的原理框图说明: Demo界面