手机 蓝牙 控制 继电器 无线门锁 物联网 安卓源码 安卓开发 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;
	        }
		}
	);

}

先上图:

时间: 2024-11-04 08:00:24

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

安卓源码----安卓系统启动过程(初次研究源码,表述不当还请见谅)

安卓系统其实是Linux系统中的一个应用程序,对应的程序是app_process,该程序是在init.rc 中被声明的,Linux启动后会启动该zygote(app_process)进程(该程序由java代码实现,由Dalvik虚拟机运行,对应代码在latest-android-2.3.7_r1\android-2.3.7_r1\frameworks\base\core\java\com\android\internal\os\ZygoteInit.java中) 安卓系统中    文件目录 安卓

【源码】基于Android和蓝牙的单片机温度采集系统

如需转载请标明出处:http://blog.csdn.net/itas109 STC89C52单片机通过HC-06蓝牙模块与Android手机通信实例- 基于Android和蓝牙的单片机温度采集系统 整个工程下载:http://download.csdn.net/detail/itas109/7539057 其中包括, 1.下位机电路原理图 2.下位机采集温度.控制发送.自动纠错代码 3.Android端接收温度并显示代码 文件截图 这个是我当年毕业设计做的东西,虽然比较简单,但是还是有一定的参

把安卓源码中的system app独立出来,像开发普通app那样开发

个人建议首先按照android源代码的ide/eclipse中的格式化xml和import导入到你编译的eclipse中,如果你编译的android源代码是2.3以上的版本的,建议用JDK6以上,提醒各位的是new androidProject不是Java project. 此时你导入想DeskClock.Camera等没有调用到hide标签的项目时,这些项目都不会报错,你可以直接进行相应的修改或研究,呵呵,如果相应直接在eclipse或手机上运行的话,可能会提示你数字签名不正确,这个你自己改下

孤岛能源安卓游戏安卓源码

这个是在那个安卓教程网分享过来的,孤岛能源安卓游戏安卓源码,孤岛能源是一个以孤岛为背景的模拟动作游戏,游戏中你的角色是 Android 机器人,目的是找到该岛上充满能量的能源造福人类.游戏中,你可以选择按键操作,也可以选择触摸操作.希望你能顺利完成任务. 效果图: 详细说明:http://android.662p.com/thread-5236-1-1.html

航空订票客户端应用安卓源码

航空订票客户端应用安卓源码,本项目是一个简单的航空订票项目源码,服务端已经挂了,直接把登录逻辑注释掉截的主界面图,整个风格比较简洁清爽,项目貌似是个半成品,很多图片都没有替换,翻了翻源码登录注册时间选择列表展示这些功能也都做了(不过服务端挂了没办法演示),项目代码写的比较规范,注释量也还说的过去,感兴趣的朋友自己下载研究一下吧,项目编译版本4.4.2默认编码GBK <ignore_js_op> Android应用源码航空订票软件客户端登录 <ignore_js_op> Androi

安卓源码编译遇到的错误及解决办法

1. make: *** [out/host/linux-x86/obj/EXECUTABLES/llvm-rs-cc_intermediates/slang_rs_export_foreach.o] 错误 1 在工程根目录下,打开下面的makefile文件:源码目录 frameworks/compile/slang/Android.mk .在打开的makefile文件中按照下面更改:#local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-un

看我如何修改vlc2.1源码-libvlc录像 视频效果控制 旋转 图形 亮度 对比度 等控制

http://58.251.41.199:9200/upload/videoshow.wmv 上面地址是我整个做出来的视频演示效果.呵呵,达到了想要的效果,但是也牺牲了不小夜晚在linux上编译 1.首先你要找到增加libvlc的patch,修改源码.在官网上有,耐心找下. 2.一定要在unbuntu上编译vlc 3.要把他的vlc源码导出来理下其代码模块 搞好这几块,想咋改都行.想要源码可联系我396963546qq, 可以技术指导析,但是不会免费. 看我如何修改vlc2.1源码-libvlc

大发彩票源码出售PHP的pcntl进程控制之pcntl_fork大发快3源码搭建

大发彩票源码出售ttkmwl.com PHP的pcntl进程控制之pcntl_fork大发快3源码搭建q2172243813pcntl 简介 PHP的进程控制支持实现了Unix方式的进程创建, 程序执行, 信号处理以及进程的中断. 进程控制不能被应用在Web服务器环境,当其被用于Web服务环境时可能会带来意外的结果. 这份文档用于阐述每个进程控制函数的通常用法.关于Unix进程控制的更多信息建议您查阅 系统文档中关于fork(2),waitpid(2),signal(2)等的部分或更全面的参考资

Thinkphp5新版聚合VIP影视APP源码 安卓/IOS苹果双端,非常棒的一款在线视频VIP解析

Thinkphp5新版聚合VIP影视APP源码 安卓/IOS苹果双端,非常棒的一款在线视频VIP解析APP,代理裂变版下载地址:Q1013175107这套系统,我是开发者,外面都是乐色,后门无数.不信可以找我测试,秒进后台.删库跑路最新更新日志用户注册可以去除短信注册或保留新用户点击观影区直接跳登录页(不会弹出会员已过期)增加了观看记录增加成10条解析,最新电影页可以在后台添加,美化直播大厅,美化会员中心,独家可以切换会员中心风格 本套源码特色一.此版本为原生双端APP:(安卓+苹果)二.后台支