驾驶时将通知转换为文本到语音

Jen*_*erH 5 android text-to-speech

我有一个应用程序,根据某些事件,将正常通知更改为文本到语音,因为有时用户无法使用手机,并且不处理手机会更安全。

例如,当你开车时,这很危险,所以我想将通知转换为文本到语音。我已经寻找了很长一段时间关于开车时将文本转换为语音的一些解释,但我在搜索的地方找不到任何参考。

为了生成文本到语音,我有这部分,效果很好:

private TextToSpeech mTextToSpeech;

public void sayText(Context context, final String message) {

    mTextToSpeech = new TextToSpeech(context, new TextToSpeech.OnInitListener() {
        @Override
        public void onInit(int status) {
            try {
                if (mTextToSpeech != null && status == TextToSpeech.SUCCESS) {
                    mTextToSpeech.setLanguage(Locale.US);
                    mTextToSpeech.speak(message, TextToSpeech.QUEUE_ADD, null);
                }
            } catch (Exception ex) {
                System.out.print("Error handling TextToSpeech GCM notification " + ex.getMessage());
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何检查我当前是否正在开车。

Dus*_*Dus 2

  1. 正如Ashwin建议的那样,您可以使用活动识别 Api,但这样做有一个缺点,您将收到的驾驶样本有一个“置信度”字段,该字段并不总是准确的,因此您必须做额外的工作(例如检查位置以查看您是否确实移动),以便完全了解用户是否移动。
  2. 您可以使用谷歌的FenceApi,它允许您定义一系列操作,例如驾驶、步行、跑步等。
    该 api 最近推出。如果您想要使用它的示例,您可以使用此答案
  3. 您可以拉取这个git 项目(一切免费),它完全可以满足您的需求:在您开车时向正常通知添加文本到语音转换。