码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-05-10 09:42:21      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:物联网   安卓   源码   wifi   socket   

一、功能:

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;
	        }	
		}
	);

}




先上图:

技术分享

技术分享技术分享技术分享技术分享技术分享技术分享技术分享技术分享

技术分享



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

标签:物联网   安卓   源码   wifi   socket   

原文地址:http://blog.csdn.net/chenhao0568/article/details/45618345

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!