我有一个广播接收器,用来监听收到的任何短信。我想通过套接字将这些数据发送回在本地计算机上运行的python服务器。每当我收到一个短信通知来证明我的祝酒器能正常工作。在我添加通过套接字发送数据之前,toast将出现在应用程序的内部或外部,但是在添加套接字部分之后,toast不仅不会通过套接字发送数据,而且toast也不会出现。在
这是我的短信服务器.java在
import java.net.Socket;
import java.net.UnknownHostException;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.gsm.SmsMessage;
import android.widget.Toast;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
public class SMSReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
Object messages[] = (Object[]) bundle.get("pdus");
SmsMessage smsMessage[] = new SmsMessage[messages.length];
for (int n = 0; n < messages.length; n++) {
smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
}
//---"From: " +smsMessage[0].getDisplayOriginatingAddress() + " Text: " + smsMessage[0].getDisplayMessageBody();
// show first message
Toast toast = Toast.makeText(context, "From: " +smsMessage[0].getDisplayOriginatingAddress() + " Text: " + smsMessage[0].getDisplayMessageBody(), Toast.LENGTH_LONG);
toast.show();
Socket socket;
try {
socket = new Socket("10.0.2.2", 7000);
OutputStream out = socket.getOutputStream();
PrintWriter output = new PrintWriter(out);
output.println("Hello from Android");
out.flush();
out.close();
socket.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*
try{
Socket socket = new Socket("10.0.2.2",7000);
DataOutputStream DOS = new DataOutputStream(socket.getOutputStream());
DOS.writeUTF("From: " +smsMessage[0].getDisplayOriginatingAddress() + " Text: " + smsMessage[0].getDisplayMessageBody());
socket.close();
} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
*/
}
}
这是python服务器,它监听连接并将接收到的数据打印到终端上
在服务器.py在
^{pr2}$
目前没有回答
相关问题 更多 >
编程相关推荐