解决方案 »
- android怎么样在两个activity中传递控件对象
- 已知图片在SD卡的路径 如何把图片转换为byte[]
- ndk真机调试的一个错误
- 请教Android相关~
- Android调用Gmail发邮件时,收件人地址无法传递过去。
- android中如何区分UI主线程和子线程
- 关于android 的SD卡缓存问题
- Android系统调用带有ACTIVITX 控件的ASP.NET网页有效果吗
- android 中service服务的使用权限
- Android AutoCompleteTextView界面问题
- android串口无法通信
- 使用wifi实现安卓手机与计算机串口通信,从而实现在移动端发送信息控制外部的单片机呢?
public void run() { //把UDP操作代码都放到这个地方,然后Handler更新UI }
}.start();
public static Button button1;
public static TextView Telini;
public static boolean flag;
private static final int MAX_DATA_PACKET_LENGTH = 40;
private byte[] buffer= new byte[MAX_DATA_PACKET_LENGTH];
private DatagramPacket dataPacket;
private DatagramSocket udpSocket;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//开辟控件空间
button1 = (Button)findViewById(R.id.button1);
Telini = (TextView)findViewById(R.id.Telini);
flag = false;
//////////////////////////////////////////////////////////////////
new OperateUDPSocket().start();
button1.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
flag = true;
//获取输入文本框
CharSequence str = "Longin|android|6677";
byte out[] = str.toString().getBytes();
dataPacket.setData(out);
dataPacket.setLength(out.length);
try{
InetAddress broadcastAddr = InetAddress.getByName("221.194.44.22");
dataPacket.setAddress(broadcastAddr);
udpSocket.send(dataPacket);
}catch(IOException e){
e.printStackTrace();
}
}
});
}
///////////////////////////////////////////////////////////////////
class OperateUDPSocket extends Thread {
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
try{
udpSocket = new DatagramSocket(6677);
} catch(SocketException e){
e.printStackTrace();
}
dataPacket = new DatagramPacket(buffer,MAX_DATA_PACKET_LENGTH);
String str = "Longin|android|6677"; //这是要传输的数据
byte out[] = str.getBytes(); //把要传输的内容分解成字节
dataPacket.setData(out);
dataPacket.setLength(out.length);
dataPacket.setPort(6677);
try {
InetAddress broadcastAddr = InetAddress.getByName("221.194.44.22");
dataPacket.setAddress(broadcastAddr);
udpSocket.send(dataPacket);
}catch(IOException e){
e.printStackTrace();
}
}
}
public void onClick(View v){
flag = true;
//获取输入文本框
CharSequence str = "Longin|android|6677";
byte out[] = str.toString().getBytes();
dataPacket.setData(out);
dataPacket.setLength(out.length);
try{
InetAddress broadcastAddr = InetAddress.getByName("221.194.44.22");
dataPacket.setAddress(broadcastAddr);
udpSocket.send(dataPacket);
}catch(IOException e){
e.printStackTrace();
}
}
});
在这里面加 起个新的线程把你的发送那个sendXX的方法写道线程里 清空输入框 同时把法送的信息显示到已发送里 成功后发handler通知页面发送结果 不过你这没有输入框