Android13实现网络共存

1.修改 frameworks/libs/net/common/device/android/net/NetworkFactoryImpl.java文件

+++ b/frameworks/libs/net/common/device/android/net/NetworkFactoryImpl.java
@@ -22,7 +22,7 @@ import android.content.Context;
 import android.net.NetworkProvider.NetworkOfferCallback;
 import android.os.Looper;
 import android.os.Message;
-
+import android.os.SystemProperties;
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
 import java.util.LinkedHashMap;
@@ -251,14 +251,31 @@ class NetworkFactoryImpl extends NetworkFactoryLegacyImpl {
         }
     }
 
+    // private void handleRemoveRequest(NetworkRequest request) {
+    //     NetworkRequestInfo n = mNetworkRequests.get(request);
+    //     if (n != null) {
+            
+    //         mNetworkRequests.remove(request);
+    //         if (n.requested) mParent.releaseNetworkFor(n.request);
+    //     }
+    // }
+
     private void handleRemoveRequest(NetworkRequest request) {
-        NetworkRequestInfo n = mNetworkRequests.get(request);
-        if (n != null) {
-            mNetworkRequests.remove(request);
-            if (n.requested) mParent.releaseNetworkFor(n.request);
+    // start
+    boolean isNetworkCoexistEnabled = SystemProperties.getBoolean("persist.sys.network_coexistence", false);
+    if (!isNetworkCoexistEnabled) {
+        return;
+    }
+    // end
+
+    NetworkRequestInfo n = mNetworkRequests.get(request);
+    if (n != null) {
+        mNetworkRequests.remove(request);
+        if (n.requested) mParent.releaseNetworkFor(n.request);
         }
     }
 
+
     private void handleSetScore(@NonNull final NetworkScore score) {
         if (mScore.equals(score)) return;
         mScore = score;

2.packages/modules/Connectivity/service/src/com/android/server/ConnectivityService.java

+++ b/packages/modules/Connectivity/service/src/com/android/server/ConnectivityService.java
@@ -16,6 +16,8 @@
 
 package com.android.server;
 
+import android.os.SystemProperties;
+
 import static android.Manifest.permission.RECEIVE_DATA_ACTIVITY_CHANGE;
 import static android.content.pm.PackageManager.FEATURE_BLUETOOTH;
 import static android.content.pm.PackageManager.FEATURE_WATCH;
@@ -3773,7 +3775,20 @@ public class ConnectivityService extends IConnectivityManager.Stub
                     // the destroyed flag is only just above the "current satisfier wins"
                     // tie-breaker. But technically anything that affects scoring should rematch.
                     rematchAllNetworksAndRequests();
-                    mHandler.postDelayed(() -> nai.disconnect(), timeoutMs);
+                    
+                    // mHandler.postDelayed(() -> nai.disconnect(), timeoutMs);
+                    mHandler.postDelayed(() -> {
+                    //  start
+                    boolean isReleaseNetwork = SystemProperties.getBoolean("persist.sys.network_coexistence", false);
+                    Log.e(TAG, "disconnect isReleaseNetwork = " + isReleaseNetwork);
+                    if (!isReleaseNetwork) {
+                         return;
+                    }
+                     // end
+
+                         nai.disconnect();
+                    }, timeoutMs);
+
                     break;
                 }
             }
@@ -8522,6 +8537,15 @@ public class ConnectivityService extends IConnectivityManager.Stub
             return;
         }
         /// AW CODE END
+
+        // start
+        boolean isReleaseNetwork = SystemProperties.getBoolean("persist.sys.network_coexistence", true);
+        Log.e(TAG, "disconnect isReleaseNetwork = " + isReleaseNetwork);
+           if (!isReleaseNetwork) {
+               return;
+           }
+        //end
+
         nai.disconnect();
     }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值