編輯:關於Android編程
之前的一篇文章介紹過SpeechRecognizer類,該類可以作為對外的一個接口,並通過Intent傳遞一個ComponentName獲取可支持語音識別的功能的服務,一般的用戶手機中如果安裝了語音識別的一些軟件,就會擁有這樣的能力,但是如果開發者希望自己通過某公司的sdk集成自己的語音識別服務,那麼就需要實現RecognitionService這個類。
這個類是個抽象類,需要開發者完成其中的幾個抽象方法。下面的代碼注釋中對每個方法進行了說明。
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四大組件之一,必然是重點。我們今天就來講解一下有關服務的生命周期、兩種開啟方式以及相關用法。 服務有兩種開啟方式,一種是正常開啟, 一種是以綁定的
因為有個需求是在自己的app中添加鈴聲並播放,而之前在網上查閱了相關的資料卻大多都是教人怎麼設置手機來電、鬧鐘等手機系統的功能,所以就以此文章作為記錄。一、本篇文章的大致
實現ActionAction是struts2應用的核心,開發中需要大量的Action類,並在struts.xml中配置Action。Action中包含了對用戶請求的處理邏
首先是main.xml文件代碼如下:<LinearLayout xmlns:android=http://schemas.android.com/apk/res/a