小编bel*_*eek的帖子

在 React Native 中运行后台服务时遇到问题

这是我在这里的第一篇文章,所以如果我不够完整和清晰,请不要责怪我。

问题

我是 React Native 的新手,最近我开始开发一个 React Native 应用程序,它可以大声读取我收到的短信。我已经实现了检索传入消息并大声朗读它们......但前提是应用程序是前台。

那么,你能告诉我一些关于这个主题的图书馆或教程吗?

我正在使用带有 Android 9 的诺基亚 5。

我目前使用以下库:

  1. React-native-android-sms-listener来检索传入的消息。
  2. React-native-tts大声朗读内容。

我已经尝试过的

我现在在互联网上搜索了一个多星期(包括 Stack Overflow 和这个示例问题),但我找不到我要找的东西。我已经尝试过React-native-background-timerReact-native-background-job。但是我不可能永远让后台计时器工作,而 React-native-background-job 只允许每 15 分钟执行一次任务(由于 Android 的限制)。

所以我阅读了很多类似这样的文章,解释如何使用Headless JS和其他库,直到今天我找到了这个 codeburst 教程,解释了如何开发后台服务来记录音频通话。我试图适应它,但后台服务从未启动。

我的代码

我必须告诉你,我没有任何 Java 知识,所以下面的原生代码可能包含错误,即使它是基于教程和 React 原生文档。

目前,当应用程序启动时,服务IncomingSMSService被调用。该服务是根据上面引用的 Codeburst 教程开发的,它依赖于 Headless JS 和一个 JS 函数,该函数侦听传入的消息,然后借助 React-native-tts 大声朗读它们。

这是这两个文件:

接收短信服务.java

package com.ava.service;

import android.content.Intent;
import android.os.Bundle;
import com.facebook.react.HeadlessJsTaskService;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.jstasks.HeadlessJsTaskConfig;

public …
Run Code Online (Sandbox Code Playgroud)

javascript java android background-process react-native

5
推荐指数
0
解决办法
1866
查看次数