gpt4 book ai didi

java - 不允许 IntentReceiver 组件绑定(bind)到服务

转载 作者:太空宇宙 更新时间:2023-11-03 10:55:46 25 4
gpt4 key购买 nike

这是我的代码:

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 中绑定(bind)到服务。有什么解决方法吗?

最佳答案

Is there any workaround for this?



你有很多,比这更大的问题。

首先, onReceive() 在主应用程序线程上以前台优先级调用。您不能在那里花费超过几毫秒而不会给前台应用程序带来问题,例如导致游戏卡顿。

其次,您不知道用户在收到短信时正在做什么。他们可能正在玩游戏。他们可能正在使用免提电话通话。你不能,不能, 不能 单方面决定你要通过文本到语音播放一个人的短信。你很容易被起诉,甚至更糟。

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

关于java - 不允许 IntentReceiver 组件绑定(bind)到服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4980529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com