From 6ee087d628cb1107e1f741d15281ccd4c4dcc838 Mon Sep 17 00:00:00 2001
From: endian11 <Dana_Lee1016@126.com>
Date: 星期一, 25 十一月 2019 10:29:51 +0800
Subject: [PATCH] 加入简单tcp连接,增加internet权限和tcp调试界面

---
 app/src/main/AndroidManifest.xml                                        |    2 
 app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java |    4 
 app/src/main/java/safeluck/drive/evaluation/tcp/ConnectThread.java      |   88 ++++++++++++++++++++++
 app/src/main/res/layout/layout_tcpclient.xml                            |   68 +++++++++++++++++
 app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java   |   75 ++++++++++++++++++
 5 files changed, 235 insertions(+), 2 deletions(-)

diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1390cee..d9e4c84 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -5,6 +5,8 @@
 
     <uses-permission android:name="android.permission.CAMERA" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.INTERNET"/>
+    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
     <application
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
new file mode 100644
index 0000000..95683d9
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
@@ -0,0 +1,75 @@
+package safeluck.drive.evaluation.fragment;
+
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.design.widget.TextInputEditText;
+import android.support.v7.widget.AppCompatEditText;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import me.yokeyword.fragmentation.SupportFragment;
+import safeluck.drive.evaluation.R;
+import safeluck.drive.evaluation.tcp.ConnectThread;
+
+/**
+ * MyApplication2
+ * Created by lzw on 2019/10/21. 17:56:51
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+public class TcpFragment extends SupportFragment implements View.OnClickListener {
+
+
+    private TextInputEditText ip;
+    private TextInputEditText port;
+    private Button btn_connect;
+    private Button btn_send;
+    private      ConnectThread connectThread;
+    private AppCompatEditText sendEditText;
+
+    public static TcpFragment newInstance() {
+        return new TcpFragment();
+    }
+
+    @Nullable
+    @Override
+    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+        View view = inflater.inflate(R.layout.layout_tcpclient, container, false);
+        initView(view);
+        return view;
+    }
+
+    private void initView(View view) {
+        ip = view.findViewById(R.id.input_ip);
+        port = view.findViewById(R.id.input_port);
+        sendEditText = view.findViewById(R.id.sendtxt);
+
+        btn_connect = view.findViewById(R.id.btn_connect);
+        btn_send = view.findViewById(R.id.btn_send);
+
+        btn_send.setOnClickListener(this);
+        btn_connect.setOnClickListener(this);
+    }
+
+    @Override
+    public void onClick(View v) {
+        switch (v.getId()){
+            case R.id.btn_connect:
+                String serverIp = ip.getText().toString().trim();
+                String serverPort = port.getText().toString().trim();
+            connectThread = new ConnectThread(serverIp,Integer.parseInt(serverPort));
+            connectThread.start();
+
+                break;
+            case R.id.btn_send:
+                if (connectThread != null){
+                    connectThread.sendMessage(sendEditText.getText().toString().trim());
+                    sendEditText.getText().clear();
+                }
+                break;
+        }
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
index 1bf216c..2da9ffb 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -57,9 +57,9 @@
     public void onClick(View v) {
         switch (v.getId()){
             case R.id.view_map:
-                MapFragment passwordFragment = findFragment(MapFragment.class);
+                TcpFragment passwordFragment = findFragment(TcpFragment.class);
                 if (passwordFragment == null) {
-                    passwordFragment = (MapFragment) MapFragment.newInstance();
+                    passwordFragment = (TcpFragment) TcpFragment.newInstance();
                     start(passwordFragment);
                 } else {
                     start(passwordFragment);
diff --git a/app/src/main/java/safeluck/drive/evaluation/tcp/ConnectThread.java b/app/src/main/java/safeluck/drive/evaluation/tcp/ConnectThread.java
new file mode 100644
index 0000000..558efd8
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/tcp/ConnectThread.java
@@ -0,0 +1,88 @@
+package safeluck.drive.evaluation.tcp;
+
+import android.provider.ContactsContract;
+import android.util.Log;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.Socket;
+
+
+/**
+ * MyApplication2
+ * Created by lzw on 2019/10/21. 14:14:30
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+public class ConnectThread extends  Thread {
+
+    private static final String TAG = "TCPClient";
+    private Socket mSocket = null;
+    private boolean isConnected = false;
+    private byte[] revBytes = new byte[1024];
+    private String ip;
+    private int port;
+    private InputStream inputStream ;
+    private OutputStream mOutputStream;
+
+    public ConnectThread(String ip,int port){
+        this.ip = ip;
+        this.port = port;
+    }
+
+    @Override
+    public void run() {
+        super.run();
+        try {
+            Log.i(TAG, "寮�濮嬪缓绔婼ocket"+ip+":"+port);
+            mSocket = new Socket(ip,port);
+
+            mOutputStream = mSocket.getOutputStream();
+            inputStream = mSocket.getInputStream();
+            isConnected = true;
+            while (isConnected){
+                int length = 0;
+                while ((length=(inputStream.read(revBytes))) != -1){
+                    
+                    String str= new String(revBytes,"GBK");
+                    Log.i(TAG, "鏀跺埌娑堟伅: "+str.trim());
+
+                }
+            }
+        } catch (IOException e) {
+            Log.i(TAG, "Socket寤虹珛澶辫触");
+            isConnected = false;
+            e.printStackTrace();
+        }
+    }
+
+    public void sendMessage(String lzw) {
+        if (mOutputStream == null){
+            Log.i(TAG, "sendMessage fail锛宲lease create socket first锛侊紒锛�");
+        }else{
+
+            new Thread(new SendRunnable(lzw)).start();
+        }
+    }
+
+    class SendRunnable implements Runnable{
+        private  String message ;
+        public SendRunnable(String s) {
+            this.message = s;
+        }
+
+        @Override
+        public void run() {
+            try {
+                Log.i(TAG, "鍙戦��: "+message);
+                mSocket.sendUrgentData(0xff);
+                mOutputStream.write(message.getBytes("GBK"));
+            } catch (IOException e) {
+                Log.i(TAG, "鍙戦�佸け璐�");
+                e.printStackTrace();
+            }
+        }
+    }
+}
diff --git a/app/src/main/res/layout/layout_tcpclient.xml b/app/src/main/res/layout/layout_tcpclient.xml
new file mode 100644
index 0000000..180f331
--- /dev/null
+++ b/app/src/main/res/layout/layout_tcpclient.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:padding="10dp"
+    android:background="@android:color/white"
+    android:orientation="vertical">
+<LinearLayout
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingLeft="10dp"
+    android:paddingRight="10dp"
+    android:orientation="horizontal">
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+
+        android:text="鏈嶅姟鍣↖P鍦板潃:"/>
+    <android.support.design.widget.TextInputEditText
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:id="@+id/input_ip"
+        android:text="192.168.10.234"
+        />
+
+</LinearLayout>
+    <LinearLayout
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingLeft="10dp"
+    android:paddingRight="10dp"
+    android:orientation="horizontal">
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="鏈嶅姟鍣ㄧ鍙e彿锛�:"/>
+    <android.support.design.widget.TextInputEditText
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:id="@+id/input_port"
+        android:text="60000"
+        />
+
+</LinearLayout>
+    <Button
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:id="@+id/btn_connect"
+        android:text="杩炴帴"/>
+    <android.support.v7.widget.AppCompatEditText
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:id="@+id/sendtxt"/>
+    <Button
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginEnd="10dp"
+        android:layout_gravity="end"
+        android:id="@+id/btn_send"
+        android:text="鍙戦��"/>
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@android:color/darker_gray"
+        android:textSize="19sp"
+        android:id="@+id/content"
+        android:text="flskajf"/>
+</LinearLayout>

--
Gitblit v1.8.0