手机 蓝牙 控制 继电器 无线门锁 物联网 安卓源码 安卓开发 Android WIFI控制 详细注释测试稳定无bug

一、功能:

1.Android  WIFI连接与断开,保存连接IP及端口。

2.WIFI控制3个继电器

3.16进制发送指令,可以单条和多条发送,用逗号隔开。

4.16进制接收

如需特别功能可以找我定制(程序源码,定制专家 手机:18910620895 旺旺:chenhao0568  QQ:345139427)。

二、源码如下:

登陆Login.java

package com.example.eeeee;


import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;


@SuppressLint("NewApi")
public class Login<E, K, V> extends Activity {
	public static Socket mSocket;
	public static InputStream ips;
	public static OutputStream ops;
//	private final String DEBUG_TAG = "mySocketAct";
	private String ip;
	private String port;
	//private ImageButton but7=null;
	private EditText ServerIp = null;
	private EditText ServerPort = null;
	private Button btn_login = null;
	private CheckBox remember;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.setContentView(R.layout.login);               //“登陆”页面-------------------------------------------------------------------------------------------

      this.ServerIp = (EditText)super.findViewById(R.id.et_ip);
      this.ServerPort = (EditText)super.findViewById(R.id.et_port);
      btn_login = (Button)this.findViewById(R.id.btn_login);
      remember = (CheckBox)this.findViewById(R.id.cb_remember);

      loadIpPort();       ////载入IP地址及端口
      
      btn_login.setOnClickListener(new View.OnClickListener() {    //按“登陆”按钮后的事件
     	  @Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub       //容错判断
				ip = ServerIp.getText().toString().trim();
				port = ServerPort.getText().toString().trim();
				ServerIp.requestFocus();
				if(ip==null|ip.trim().equals(""))
					ServerIp.setError("请输入IP地址!");
                if(port==null|port.trim().equals(""))
                	ServerPort.setError("请输入端口号!");
                else
                {   
                	connect();
                }
			    return;
			}
		});
        
     }
    public void saveIpPort()             //保存IP地址及端口
    {
 	    SharedPreferences uiState   = getSharedPreferences("RS485 Controller", MODE_PRIVATE);
 		Editor et=uiState.edit();
 		et.putString("ip",ServerIp.getText().toString());
 		et.putString("port",ServerPort.getText().toString()); 
 		et.commit();
    } 

    public void loadIpPort()              //载入IP地址及端口
    {
 	    SharedPreferences uiState   = getSharedPreferences("RS485 Controller", MODE_PRIVATE);
 	   ServerIp.setText(uiState.getString("ip","192.168.1.180" ));
 	   ServerPort.setText(uiState.getString("port", "8899")); 
    }
    public void connect() {
    	Toast.makeText(Login.this, "连接中……", Toast.LENGTH_SHORT).show();
		new Thread(new Runnable() {
			@Override
			public void run() {
				try {
					mSocket = new Socket(InetAddress.getByName(ip),
							Integer.parseInt(port));
					// mSocket =new Socket("192.168.1.180",8899);
					ops = mSocket.getOutputStream();
					ips =mSocket.getInputStream();
		

				} catch (Exception e) {
					e.printStackTrace();
				} finally {
				}
				handler.sendMessage(handler.obtainMessage());

			}
		}).start();

	}
	// 消息处理队列
	private Handler handler =  new Handler(new Handler.Callback() {
		  @Override
	        public boolean handleMessage(Message msg) {
				if (mSocket == null) {
					Toast.makeText(Login.this, "连接失败,请重新登陆!", Toast.LENGTH_SHORT).show();

				} else
				{
					Toast.makeText(Login.this, "连接成功!", Toast.LENGTH_SHORT).show();
					 if (remember.isChecked()) { saveIpPort();}             //保存IP地址及端口
					Intent intent = new Intent();
					intent.setClass(Login.this,Relay.class);
					startActivity(intent);                                         //进入Login页面
				//	finish();   
				}
	            return false;
	        }	
		}
	);

}




先上图:





评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黄人软件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值