第一步 frameworks/opt/net/ethernet下
diff --git a/java/com/android/server/ethernet/EthernetNetworkFactory.java b/java/com/android/server/ethernet/EthernetNetworkFactory.java
index f70e885..003f1df 100644
--- a/java/com/android/server/ethernet/EthernetNetworkFactory.java
+++ b/java/com/android/server/ethernet/EthernetNetworkFactory.java
@@ -60,6 +60,21 @@
import java.net.InetAddress;
import java.util.concurrent.ConcurrentHashMap;
+
+import java.io.File;
+import java.io.BufferedReader;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import android.os.SystemProperties;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.text.DecimalFormat;
+import android.os.Handler;
+import android.os.RemoteException;
+import android.os.Message;
+import android.text.TextUtils;
+
/**
* {@link NetworkFactory} that represents Ethernet networks.
*
@@ -193,6 +208,9 @@
/** Returns true if state has been modified */
boolean updateInterfaceLinkState(String ifaceName, boolean up) {
+if(ifaceName.equals("eth0")||ifaceName.equals("eth1")){
+netSettingeth(ifaceName,up);
+}
if (!mTrackingInterfaces.containsKey(ifaceName)) {
return false;
}
@@ -297,12 +315,43 @@
}
return dns;
}
-
+boolean isclickFirst = true ;
void updateIpConfiguration(String iface, IpConfiguration ipConfiguration) {
NetworkInterfaceState network = mTrackingInterfaces.get(iface);
if (network != null) {
network.setIpConfig(ipConfiguration);
network.reconnect();
+ if(getEthernetCarrierState(iface)==1){
+ Log.w(TAG, "Ethernet line is exists iface="+iface);
+ //network.reconnect();
+ //network.start();
+
+ /* if(iface.equals("eth0")){
+ if(getEthernetCarrierState("eth1")==1){
+ NetworkInterfaceState othernetwork = mTrackingInterfaces.get("eth1");
+ Log.w(TAG, "329 Ethernet line is exists othernetwork="+othernetwork);
+ if (othernetwork != null) {
+ //othernetwork.reconnect();
+ }
+ }else {
+ // network.reconnect();
+
+ }
+
+ }else if(iface.equals("eth1")){
+ if(getEthernetCarrierState("eth0")==1){
+ NetworkInterfaceState othernetwork = mTrackingInterfaces.get("eth0");
+ Log.w(TAG, "339 Ethernet line is exists othernetwork="+othernetwork);
+ if (othernetwork != null) {
+ //othernetwork.reconnect();
+ }
+ }else {
+ //network.reconnect();
+
+ }
+ }*/
+ }
+
}
}
@@ -336,6 +385,38 @@
return network;
}
+
+ private String ReadFromFile(File file) {
+ if((file != null) && file.exists()) {
+ try {
+ FileInputStream fin= new FileInputStream(file);
+ BufferedReader reader= new BufferedReader(new InputStreamReader(fin));
+ String flag = reader.readLine();
+ fin.close();
+ return flag;
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+ }
+ return null;
+ }
+