Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在广播接收机中使用setter?_Java_Android - Fatal编程技术网

Java 如何在广播接收机中使用setter?

Java 如何在广播接收机中使用setter?,java,android,Java,Android,我有java类可以通过编程从android应用程序发送短信。我想在发送会议后生成一份报告,我需要以下消息活动的状态: 发送状态 接收状态 这两种状态都正确地显示在toast中,但是当我尝试为它们设置setter时,它会返回默认值。可能是因为 mContext.registerReceiver(new BroadcastReceiver()……..位于不同的线程上,如何设置setter或从该功能块获取te发送状态 public class SMSSending { private String p

我有java类可以通过编程从android应用程序发送短信。我想在发送会议后生成一份报告,我需要以下消息活动的状态:

发送状态

接收状态

这两种状态都正确地显示在toast中,但是当我尝试为它们设置setter时,它会返回默认值。可能是因为

mContext.registerReceiver(new BroadcastReceiver()……..位于不同的线程上,如何设置setter或从该功能块获取te发送状态

public class SMSSending
{
private String phoneNo;
private String message;
private Context mContext;
Settings.Global global;


public void setSendingStatus(String sendingStatus) {
this.sendingStatus = sendingStatus;
}

private String sendingStatus;

public void setReceivingStatus(String receivingStatus) {
this.receivingStatus = receivingStatus;
}

private String receivingStatus;

public SMSSending(String phoneNo, Context mContext, String testID)
{
this.phoneNo = phoneNo;
this.mContext = mContext;
message = "This is a test message from " + testID;
}

public String getSendingStatus()
{
return sendingStatus;
}

public String getReceivingStatus()
{
return receivingStatus;
}

public void sendingMessage()
{
try
{
sendingStatus = "Failed to send SMS message";
receivingStatus = "Failed to deliver SMS ";

String SENT = "sent";
String DELIVERED = "delivered";

PendingIntent sentPI = PendingIntent.getBroadcast(mContext, 0, new Intent(SENT), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(mContext, 0,new Intent(DELIVERED), 0);
//setSendingStatus("Transmission successful");
//Register for SMS send action
mContext.registerReceiver(new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{

switch (getResultCode())
{
case Activity.RESULT_OK:
sendingStatus = "Transmission successful";
break;
default:
sendingStatus = "Transmission failure";
break;
}
// Save sendingStatus in Database as test report for sending message.
Toast.makeText(mContext, sendingStatus,Toast.LENGTH_LONG).show();
setSendingStatus(sendingStatus);
}
}, new IntentFilter(SENT));

/* Register for Delivery event */
mContext.registerReceiver(new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
receivingStatus = "SMS Delivered Succesfully";
// Save sendingStatus in Database as test report for receiving message.


// This function will only be executed if message has been successful received
Toast.makeText(mContext, receivingStatus, Toast.LENGTH_LONG).show();
setReceivingStatus(receivingStatus);
}

},new IntentFilter(DELIVERED));
enter code here
//Send SMS
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, message, sentPI, deliveredPI);
}

catch (Exception ex)
{
sendingStatus = "Failed to send SMS message";
receivingStatus = "Failed to deliver SMS ";
}
}