小编LHe*_*eld的帖子

Android API21:未调用VoiceInteractionService onReady()

我对新的Android API21有疑问,特别是VoiceInteractorService.

我想在API21中使用新的Hotword检测.如果我按下按钮,应该开始对"谷歌"这个词进行热门词检测.

当我有一个Activity(MainActivity)并且我想从VoiceInteractorService调用createAlwaysOnHotwordDetector(String keyphrase,Locale locale,AlwaysOnHotwordDetector.Callback callback)方法时,我收到一个错误:java.lang.IllegalStateException:在onReady()之前不可用调用.我试着通过使用try with try来暂时解决这个问题,看看何时调用onReady()并且我可以执行createAlwaysOnHotwordDetector()方法.我发现即使在让系统循环15分钟之后也永远不会调用onReady().

有人知道如何解决这个问题吗?

提前致谢.

这是我调用VoiceInteractorService的Activity.

import java.util.Locale;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.service.voice.AlwaysOnHotwordDetector;
import android.service.voice.AlwaysOnHotwordDetector.Callback;
import android.service.voice.VoiceInteractionService;
import android.service.voice.AlwaysOnHotwordDetector.EventPayload;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

    Button btn;
    VoiceInteractionService service;
    AlwaysOnHotwordDetector.Callback callback;
    Locale locale = new Locale("nl-NL");
    Context ctx;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (Button) findViewById(R.id.button1);
        ctx = getApplicationContext();
        service = new VoiceInteractionService();
        btn.setOnClickListener(new OnClickListener() {
            // …
Run Code Online (Sandbox Code Playgroud)

service android voice-recognition android-5.0-lollipop

8
推荐指数
1
解决办法
1957
查看次数