Фоновая служба не может загрузить класс SpeechRecognizer.Я использую библиотеку PocketSphinx - PullRequest
0 голосов
/ 24 июня 2019

Я не могу инициализировать класс SpeechRecognizer из Службы. я был в состоянии загрузить это от деятельности, но это не смогло загрузить в сервисе. Кто-нибудь может мне помочь разобраться?

открытый класс MainActivity расширяет AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    startService(new Intent(this,BackgroundService.class));
}

}

открытый класс BackgroundService расширяет Сервис, реализует SpeechRecognizerManager.OnResultListener {

private SpeechRecognizerManager mSpeechRecognizerManager;

public BackgroundService(){

}

@Override
public void onCreate() {
    mSpeechRecognizerManager =new SpeechRecognizerManager(BackgroundService.this);
    mSpeechRecognizerManager.setOnResultListner(BackgroundService.this);

}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {


    mSpeechRecognizerManager =new SpeechRecognizerManager(BackgroundService.this);
    mSpeechRecognizerManager.setOnResultListner(BackgroundService.this);

    return START_STICKY;

}

@Override
public IBinder onBind(Intent intent) {
    return null;
}

@Override
public void OnResult(ArrayList<String> commands) {

}

}

открытый класс SpeechRecognizerManager {

public SpeechRecognizerManager(Context context) {
    this.mContext = context;
    initPockerSphinx();

}

public void setOnResultListner(OnResultListener onResultListener){
    mOnResultListener=onResultListener;
}

private void initPockerSphinx() {

    new AsyncTask<Void, Void, Exception>() {
        @Override
        protected Exception doInBackground(Void... params) {
            try {
                //some code
            } catch (IOException e) {
                return e;
            }
            return null;
        }

        @Override
        protected void onPostExecute(Exception result) {
            if (result != null) {
                Toast.makeText(mContext, "Failed to init mPocketSphinxRecognizer ", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(mContext, "Working", Toast.LENGTH_SHORT).show();
                restartSearch(KWS_SEARCH);
            }
        }
    }.execute();

}

Я получаю тост "Не удалось инициализировать mPocketSphinxRecognizer"

...