本帖最后由 ldxxin 于 2019-6-26 16:09 编辑
这个是主程序
packagecom.example.a123.myapplication;
importandroid.support.v7.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.Toast;
importjava.io.IOException;
importjava.io.PrintStream;
importjava.net.Socket;
public classMainActivity extendsAppCompatActivity implementsView.OnClickListener {
privateEditText mIp; // IPprivateEditText mPort; // 端口号privateString mStrIp; // 字符串类型ipprivate intmiPort; // 字符类型端口privateButton mBtnConnect; // 连接privateSocket mSocket; // 套接字privatePrintStream out; // 打印输出流privateConnectThread mConnectThread; // TCP连接线程privateButton mMotorZ; // 按钮LED灯开privateButton mMoyorF; // 按钮LED灯关@Overrideprotected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBtnConnect=(Button)findViewById(R.id.mBt1);
mMotorZ=(Button)findViewById(R.id.mBt2);
mMoyorF=(Button)findViewById(R.id.mBt3);
mIp=(EditText)findViewById(R.id.mEtIP);
mPort=(EditText)findViewById(R.id.mEtPort);
mBtnConnect.setOnClickListener(this);
mMotorZ.setOnClickListener(this);
mMoyorF.setOnClickListener(this);
}
@Overridepublic voidonClick(View v) {
switch(v.getId()){
caseR.id.mBt1:
if( mSocket== null|| ! mSocket.isConnected()) {
mStrIp= mIp.getText().toString();
miPort= Integer.valueOf(mPort.getText().toString());
mConnectThread= newConnectThread(mStrIp, miPort);
mConnectThread.start();
}
if(mSocket!= null&& mSocket.isConnected()){
try{
mSocket.close();
mSocket=null; // 清空mSocketmBtnConnect.setText("连接");
Toast.makeText(MainActivity.this,"连接已关闭", Toast.LENGTH_LONG).show();
} catch(IOException e) {
e.printStackTrace();
}
}
break;
caseR.id.mBt2:
if(out!=null){
out.print("0");
out.flush();
}
break;
caseR.id.mBt3:
if(out!=null){
out.print("1");
out.flush();
}
break;
}
}
private classConnectThread extendsThread{
privateString ip;
private intport;
publicConnectThread(String ip,intport){
this.ip=ip;
this.port=port;
}
@Overridepublic voidrun() {
try{
mSocket=newSocket(ip,port);
out= newPrintStream(mSocket.getOutputStream());
runOnUiThread(newRunnable(){
@Overridepublic voidrun() {
mBtnConnect.setText("断开");
Toast.makeText(MainActivity.this,"连接成功",Toast.LENGTH_LONG).show();
}
});
} catch(IOException e) {
e.printStackTrace();
runOnUiThread(newRunnable(){
@Overridepublic voidrun() {
mBtnConnect.setText("断开");
Toast.makeText(MainActivity.this,"连接失败",Toast.LENGTH_LONG).show();
}
});
}
}
}
}
以下是AndroidManifest.xml文件的配置
xmlns:tools="http://schemas.android.com/tools"
package="com.example.a123.myapplication">
添加以下的才能与esp8266通信
以下是界面的一些程序