gpt4 book ai didi

java - 警报对话框未出现

转载 作者:行者123 更新时间:2023-12-01 06:00:58 25 4
gpt4 key购买 nike

这是我第一次在这里发帖。我是 Java 和 Android SDK 的新手,我想我应该首先尝试编写一个简单的应用程序来过滤短信中的“诈骗”关键字,用于学校的创新模块。

每当标记关键字(“FREEBIE”等)时,该应用程序都会显示一个小 toast ,但我一直在尝试制作一个更明显的指示器,例如通过警报对话框。

不确定我做错了什么,但是当发送包含关键字的消息时,警报没有显示,但是 toast 工作正常。我认为这可能是上下文的问题,因此我尝试了 context/this/getActivityContext 等,但收到“Builder 无法应用于 com.example.myapp.ReceiveSms”错误。

package com.example.myapp;

import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;


public class ReceiveSms extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {

if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
Bundle bundle = intent.getExtras();
SmsMessage[] msgs;
if (bundle != null) {
try {
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i = 0; i < msgs.length; i++) {
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
String msgFrom = msgs[i].getOriginatingAddress();
String msgBody = msgs[i].getMessageBody();


if (msgBody.matches(".*\\bFREEBIE\\b.*")) {

AlertDialog.Builder builder = new AlertDialog.Builder(context.getApplicationContext());
builder.setTitle("Scam Message");
builder.setMessage("Scam Message");
builder.setCancelable(true);
builder.setNeutralButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});

AlertDialog alert = builder.create();
alert.show();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}

最佳答案

基本上你不能在广播接收器中显示对话框。有关更多详细信息,请参阅此链接,https://stackoverflow.com/a/8766864/1079842

关于java - 警报对话框未出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59512569/

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