liuyuqi-dellpc 5 years ago
parent
commit
6fcc41a742

+ 1 - 1
res/layout/activity_main.xml

@@ -41,7 +41,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_gravity="center"
-            android:text="@string/_wifi_"
+            android:text="@string/set_wifi_proxy"
             android:layout_marginTop="50sp" />
     </LinearLayout>
 

+ 2 - 1
res/values/strings.xml

@@ -5,7 +5,8 @@
     <string name="hello_world">Hello world!</string>
     <string name="action_settings">Settings</string>
     <string name="port_">port:</string>
-    <string name="_wifi_">设置wifi代理</string>
     <string name="v_host">192.168.6.100</string>
+    <string name="set_wifi_proxy">设置WIFI代理</string>
+    <string name="cancel_wifi_proxy">取消WIFI代理</string>
 
 </resources>

+ 6 - 7
src/me/yoqi/wifiproxy/MainActivity.java

@@ -2,7 +2,6 @@ package me.yoqi.wifiproxy;
 
 import android.content.Context;
 import android.content.SharedPreferences;
-import android.net.wifi.WifiManager;
 import android.os.Bundle;
 import android.support.v7.app.AppCompatActivity;
 import android.view.View;
@@ -10,7 +9,7 @@ import android.view.View.OnClickListener;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.Toast;
-import me.yoqi.wifiproxy.utils.ProxySetting;
+import me.yoqi.wifiproxy.utils.WifiProxyManager;
 
 /**
  * MainActivity
@@ -59,14 +58,14 @@ public class MainActivity extends AppCompatActivity {
 	 */
 	private void setWifiProxy() {
 
-		if (btn1.getText().toString().equals("设置WIFI代理")) {
-			ProxySetting.setWifiProxySettingsFor17And(mContext, edt_host.getText().toString().trim(),
+		if (btn1.getText().toString().equals(R.string.set_wifi_proxy)) {
+			WifiProxyManager.setWifiProxySettingsFor17And(mContext, edt_host.getText().toString().trim(),
 					Integer.parseInt(edt_port.getText().toString().trim()), null);
 			Toast.makeText(mContext, "设置成功!", Toast.LENGTH_SHORT).show();
-			btn1.setText("取消WIFI代理");
+			btn1.setText(R.string.cancel_wifi_proxy);
 		} else {
-			ProxySetting.unsetWifiProxySettingsFor17And(mContext);
-			btn1.setText("设置WIFI代理");
+			WifiProxyManager.unsetWifiProxySettingsFor17And(mContext);
+			btn1.setText(R.string.set_wifi_proxy);
 		}
 		saveConfig();
 	}

+ 15 - 5
src/me/yoqi/wifiproxy/utils/ProxySetting.java → src/me/yoqi/wifiproxy/utils/WifiProxyManager.java

@@ -15,7 +15,7 @@ import android.net.wifi.WifiManager;
  * @author liuyuqi
  *
  */
-public class ProxySetting {
+public class WifiProxyManager {
 
 	private static Object proxySettings;
 
@@ -47,13 +47,23 @@ public class ProxySetting {
 	 * @throws IllegalArgumentException
 	 * @throws IllegalAccessException
 	 */
-	public static Object getFieldObject(Object obj, String name)
+	public static Object getDeclaredFieldObject(Object obj, String name)
 			throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
 		Field f = obj.getClass().getField(name);
 		Object out = f.get(obj);
 		return out;
 	}
 
+	/**
+	 * @param config
+	 * @param string
+	 * @param mIpConfiguration
+	 */
+	private static void setDeclardFildObject(WifiConfiguration config, String string, Object mIpConfiguration) {
+		// TODO Auto-generated method stub
+
+	}
+
 	/**
 	 * 获取当前WiFi状态
 	 * 
@@ -91,7 +101,7 @@ public class ProxySetting {
 		if (config == null)
 			return;
 		try {
-			Object linkProperties = getFieldObject(config, "linkProperties");
+			Object linkProperties = getDeclaredFieldObject(config, "linkProperties");
 			if (null == linkProperties)
 				return;
 			// 获取类 LinkProperties的setHttpProxy方法
@@ -129,7 +139,7 @@ public class ProxySetting {
 		if (null == config)
 			return;
 		try {
-			Object linkProperties = getFieldObject(config, "linkProperties");
+			Object linkProperties = getDeclaredFieldObject(config, "linkProperties");
 			if (null == linkProperties)
 				return;
 			// get the setHttpProxy method for LinkProperties
@@ -144,7 +154,7 @@ public class ProxySetting {
 			params[0] = null;
 			setHttpProxy.invoke(linkProperties, params);
 			setEnumField(config, "NONE", "proxySettings");
-			// save the config
+
 			wifiManager.updateNetwork(config);
 			wifiManager.disconnect();
 			wifiManager.reconnect();