From 859331aa11d978c3935ceb955922029e11686df4 Mon Sep 17 00:00:00 2001 From: David Su Date: Mon, 3 Feb 2020 16:57:42 -0800 Subject: [PATCH] Register RttManager correctly RttManager is an exception in that the service name (Context.WIFI_RTT_SERVICE) it is published under is different from its binder name (Context.WIFI_RTT_RANGING_SERVICE). When `SystemServiceRegistry.registerContextAwareService()` tries to get the binder of Context.WIFI_RTT_SERVICE, it won't find anything since there is no binder published under that name. Thus, the registration will fail. Instead, delegate RttManager construction to WifiRttManager construction. Bug: 148817663 Test: atest android.net.wifi.rtt.cts.WifiRttTest Change-Id: I94e505583689f3fd3836dba2f7feb0e7f0ab1378 --- .../net/wifi/WifiFrameworkInitializer.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/wifi/java/android/net/wifi/WifiFrameworkInitializer.java b/wifi/java/android/net/wifi/WifiFrameworkInitializer.java index 002820b1bcc88..1507199b0264a 100644 --- a/wifi/java/android/net/wifi/WifiFrameworkInitializer.java +++ b/wifi/java/android/net/wifi/WifiFrameworkInitializer.java @@ -101,15 +101,6 @@ public class WifiFrameworkInitializer { return new WifiScanner(context, service, getInstanceLooper()); } ); - SystemServiceRegistry.registerContextAwareService( - Context.WIFI_RTT_SERVICE, - RttManager.class, - (context, serviceBinder) -> { - IWifiRttManager service = IWifiRttManager.Stub.asInterface(serviceBinder); - WifiRttManager wifiRttManager = new WifiRttManager(context, service); - return new RttManager(context, wifiRttManager); - } - ); SystemServiceRegistry.registerContextAwareService( Context.WIFI_RTT_RANGING_SERVICE, WifiRttManager.class, @@ -118,5 +109,13 @@ public class WifiFrameworkInitializer { return new WifiRttManager(context, service); } ); + SystemServiceRegistry.registerContextAwareService( + Context.WIFI_RTT_SERVICE, + RttManager.class, + context -> { + WifiRttManager wifiRttManager = context.getSystemService(WifiRttManager.class); + return new RttManager(context, wifiRttManager); + } + ); } }