加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 不允许IntentReceiver组件绑定到服务

发布时间:2020-12-15 02:23:48 所属栏目:Java 来源:网络整理
导读:这是我的代码: import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.speech.tts.TextToSpeech;import android.telephony.SmsMessage;import android.util.Log;public class SmsBroadca
这是我的代码:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.speech.tts.TextToSpeech;
import android.telephony.SmsMessage;
import android.util.Log;

public class SmsBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context,Intent intent) {
        Object[] rawMsgs = (Object[])intent.getExtras().get("pdus");

        for (Object raw : rawMsgs) {
            SmsMessage message  = SmsMessage.createFromPdu((byte[])raw);

            Log.v("[SMS]:",message.getMessageBody());

            TextToSpeech tts = new TextToSpeech(context,null);

        }
    }
}

我尝试初始化TextToSpeech时出错.显然,我在BroadcastReceiver中无法绑定到服务.这有什么解决方法吗?

解决方法

Is there any workaround for this?

你有比这更大的问题.

首先,在主应用程序线程上以前台优先级调用onReceive().您不能在那里花费超过几毫秒而不会导致前台应用程序出现问题,例如在游戏中造成口吃.

其次,当SMS消息进入时,您不知道用户正在做什么.他们可能正在玩游戏.他们可能正在拨打电话的电话中间.您不能,也不能,不能单方面决定您将通过文本转语音播放一个人的短信.你很容易被起诉,也许更糟.

我敦促你现在停止编码,并坐下来思考 – 真的想 – 你正在尝试做什么,以及你的方法的后果.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读