当前位置:首页 > 资讯 > 正文

goproxy-android snail007/goproxy全能代理服务器安卓版

goproxy-android snail007/goproxy全能代理服务器安卓版

package com.host900.goproxy; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Paint; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.Editable; import android.text.TextWatcher; import android.text.method.ScrollingMovementMethod; import android.view.View; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration; import snail007.proxysdk.LogCallback; import snail007.proxysdk.Proxysdk; public class MainActivity extends AppCompatActivity { String TAG = "HomeFragment"; String serviceID = "srv"; int log_line_cnt = 0; EditText log ; Handler handler=new Handler() { @Override public void handleMessage(Message msg) { String line=msg.getData().getString("line"); if (++log_line_cnt > 100) { log.setText(""); } log.append(line + " "); } }; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final EditText editText = findViewById(R.id.input); SharedPreferences config = getSharedPreferences("config", Context.MODE_PRIVATE); final SharedPreferences.Editor editor = config.edit(); final String args = config.getString("args", ""); editText.setText(args); editText.addTextChangedListener(watcher(editor, editText)); TextView status = findViewById(R.id.tv_status); log = (EditText) findViewById(R.id.log_output); TextView tip = findViewById(R.id.tip); TextView ipaddrs = findViewById(R.id.ip_addrs); String sdkVersion = Proxysdk.version(); TextView viewManual = findViewById(R.id.view_manual); TextView joinQQ = findViewById(R.id.join_qq_group); ipaddrs.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); ClipData mClipData = ClipData.newPlainText("ip", ((TextView)view).getText()); cm.setPrimaryClip(mClipData); Toast.makeText(view.getContext(), R.string.ip_copied, Toast.LENGTH_LONG).show(); return false; } }); joinQQ.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); ClipData mClipData = ClipData.newPlainText("qq", ((TextView)view).getText()); cm.setPrimaryClip(mClipData); Toast.makeText(view.getContext(), R.string.qqcopied, Toast.LENGTH_LONG).show(); return false; } }); //ui viewManual.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 viewManual.getPaint().setAntiAlias(true);//抗锯齿 getSupportActionBar().setTitle(getString(R.string.apptitle)); tip.setText(getString(R.string.hint0) + sdkVersion + getString(R.string.hint1)); ipaddrs.setText(getIpAddress(getBaseContext())); joinQQ.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 joinQQ.getPaint().setAntiAlias(true);//抗锯齿 log.setMovementMethod(ScrollingMovementMethod.getInstance()); //event findViewById(R.id.btn_start).setOnClickListener(start(log, status, editText, this)); findViewById(R.id.btn_stop).setOnClickListener(stop(status, editText)); viewManual.setOnClickListener(openURL("https://snail007.github.io/goproxy/manual/zh/#/")); // joinQQ.setOnClickListener(openURL("https://jq.qq.com/?_wv=1027&k=5G2EwxR")); return; } public View.OnClickListener stop(final TextView status, final EditText editText) { return new View.OnClickListener() { @Override public void onClick(View view) { Proxysdk.stop((serviceID)); editText.setEnabled(true); status.setText(R.string.stopped); } }; } public View.OnClickListener start(final EditText log, final TextView status, final EditText editText, final Context ctx) { return new View.OnClickListener() { @Override public void onClick(View view) { String args = editText.getText().toString().trim(); if (args.indexOf("proxy") == 0 && args.length() >= 5) { args = args.substring(5); } if (args.replaceAll("