android9.0添加以太网接口

frameworks/opt/net/ethernet/java/com/android/server/ethernet/EthernetTracker.java
diff --git a/core/java/android/net/EthernetManager.java b/core/java/android/net/EthernetManager.java
old mode 100644
new mode 100755
index ecccda588ae..39e54920abc
--- a/core/java/android/net/EthernetManager.java
+++ b/core/java/android/net/EthernetManager.java
@@ -123,6 +123,7 @@ public class EthernetManager {
         }
     }
 
+       
     /*
      * Adds a listener.
      * @param listener A {@link Listener} to add. 
      */
@@ -171,4 +172,18 @@ public class EthernetManager {
             }
         }
     }
+       
+               
+               /**
+       state
+       true 开启以太网
+       false 关闭以太网
+    **/
+    public boolean setInterfaceStatus(String iface, boolean state){
+               try {
+            return mService.setInterfaceStatus(iface,state);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }  
 }
diff --git a/core/java/android/net/IEthernetManager.aidl b/core/java/android/net/IEthernetManager.aidl
old mode 100644
new mode 100755
index 94960b51d32..08b5f055ab6
--- a/core/java/android/net/IEthernetManager.aidl
+++ b/core/java/android/net/IEthernetManager.aidl
@@ -32,4 +32,5 @@ interface IEthernetManager
     boolean isAvailable(String iface);
     void addListener(in IEthernetServiceListener listener);
     void removeListener(in IEthernetServiceListener listener);
+    boolean setInterfaceStatus(String iface, boolean state);
 }
diff --git a/java/com/android/server/ethernet/EthernetServiceImpl.java b/java/com/android/server/ethernet/EthernetServiceImpl.java
old mode 100644
new mode 100755
index d5beec1..5bb7b0d
--- a/java/com/android/server/ethernet/EthernetServiceImpl.java
+++ b/java/com/android/server/ethernet/EthernetServiceImpl.java
@@ -126,6 +126,19 @@ public class EthernetServiceImpl extends IEthernetManager.Stub {
         // TODO: this does not check proxy settings, gateways, etc.
         // Fix this by making IpConfiguration a complete representation of static configuration.
         mTracker.updateIpConfiguration(iface, new IpConfiguration(config));
+               
+        if (mTracker.isRestrictedInterface(iface)) {
+            enforceUseRestrictedNetworksPermission();
+        }   
+ 
+        // TODO: this does not check proxy settings, gateways, etc.
+        // Fix this by making IpConfiguration a complete representation of static configuration.
+     
+        mTracker.updateIpConfiguration(iface, new IpConfiguration(config));
+        mTracker.removeInterface(iface);//清除当前端口
+        mTracker.start();
+
     }
 
@@ -142,6 +155,7 @@ public class EthernetServiceImpl extends IEthernetManager.Stub {
         return mTracker.isTrackingInterface(iface);
     }
 
+
     /**
      * Adds a listener.
      * @param listener A {@link IEthernetServiceListener} to add.
      */
@@ -187,4 +201,16 @@ public class EthernetServiceImpl extends IEthernetManager.Stub {
         mHandler.dump(new PrintWriterPrinter(pw), "EthernetServiceImpl");
         pw.decreaseIndent();
     }
+       /**
+       * state
+       * true 开启以太网
+       * false 关闭以太网
+    **/
+
+    @Override
+    public boolean setInterfaceStatus(String iface, boolean state){
+         enforceAccessPermission();
+        return mTracker.setInterfaceStatus(iface,state);
+    }  
+       
 }
diff --git a/java/com/android/server/ethernet/EthernetTracker.java b/java/com/android/server/ethernet/EthernetTracker.java
old mode 100644
new mode 100755
index 00eedd5..720c2dd
--- a/java/com/android/server/ethernet/EthernetTracker.java
+++ b/java/com/android/server/ethernet/EthernetTracker.java
@@ -167,7 +167,7 @@ final class EthernetTracker {
         mListeners.unregister(listener);
     }
 
-    private void removeInterface(String iface) {
+    public void removeInterface(String iface) {
         mFactory.removeInterface(iface);
     }
 
@@ -427,4 +427,28 @@ final class EthernetTracker {
             mFactory.dump(fd, pw, args);
         });
     }
+	
+	/**
+	state
+	true 开启以太网
+	false 关闭以太网
+    **/
+    public boolean setInterfaceStatus(String iface, boolean state){
+         try {
+            if(!TextUtils.isEmpty(iface)) {
+                if(!state)
+                    mNMService.setInterfaceDown(iface);
+                else 
+                    mNMService.setInterfaceUp(iface);
+                return true;
+            } else {
+                Log.e(TAG,"iface is null");
+            }   
+        } catch (Exception e) {
+            Log.e(TAG, "Error setInterfaceStatus : " + iface + " state : " + state + " exception : " + e); 
+        }   
+        return false;
+    }  
+
+
 }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Android 9.0版本支持以和4G络的共存功能,可以同时使用以和4G络进行联。 要实现以和4G共存,首先需要确保设备支持搭载以适配器功能。接下来,需要在设备的系统设置中进行相应的配置。 进入设备的设置页面,找到“络和互联”选项,并进入“以”或“线和络”子菜单。在该菜单中,可以看到以适配器的配置选项。 将设备连接到目标以络后,点击以配置选项,进入更多配置设置。在该页面中,可以找到“通过以访问互联”的选择项。勾选该选项,即可让设备通过以适配器进行联。 此时,设备会使用以进行络访问,而4G络会被禁用。但是在Android 9.0中,同时可以启用以和4G络共存。 返回上一级菜单后,再次找到“络和互联”选项,进入“移动络”子菜单。在该菜单中,可以找到“移动络”和“数据漫游”选项。 点击“移动络”选项,进入移动络配置设置。在该页面中,可以看到“启用移动数据”选项。勾选该选项,即可启用4G络。 通过以上步骤,设备即可同时使用以和4G络进行共存。这样可以在有以连接的情况下,优先使用以进行络访问,而在以不可用时,自动切换到4G络。 需要注意的是,某些设备可能在系统设置中的不同位置提供了以上功能,在实际操作过程中,可能需要根据具体设备的系统设置进行相应的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那肯定是很多年以后!

你的鼓励就我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值