From 10bf6354a536152719bf4524429aa5739836c541 Mon Sep 17 00:00:00 2001 From: Yuhao Zheng Date: Tue, 25 Mar 2014 15:00:45 -0700 Subject: [PATCH] Wifi hotspot stack initial hook up Add a dummy wifi hotspot service for futher development use. This is to resolve the different between master branch and kwd branch, such that future development can go into kwd and being auto-merged to master. bug: 5485670 Change-Id: Ica58de445dd050a9f0b817f8e4accaa2478299c5 --- Android.mk | 1 + api/current.txt | 14 ++++++ core/java/android/app/ContextImpl.java | 9 ++++ core/java/android/content/Context.java | 11 +++++ .../java/com/android/server/SystemServer.java | 8 ++++ .../net/wifi/hotspot/IWifiHotspotManager.aidl | 28 +++++++++++ .../net/wifi/hotspot/WifiHotspotManager.java | 48 +++++++++++++++++++ 7 files changed, 119 insertions(+) create mode 100644 wifi/java/android/net/wifi/hotspot/IWifiHotspotManager.aidl create mode 100644 wifi/java/android/net/wifi/hotspot/WifiHotspotManager.java diff --git a/Android.mk b/Android.mk index 33e64d0e723fc..92eeec5c19deb 100644 --- a/Android.mk +++ b/Android.mk @@ -288,6 +288,7 @@ LOCAL_SRC_FILES += \ telephony/java/com/android/internal/telephony/ISms.aidl \ telephony/java/com/android/internal/telephony/IWapPushManager.aidl \ wifi/java/android/net/wifi/IWifiManager.aidl \ + wifi/java/android/net/wifi/hotspot/IWifiHotspotManager.aidl \ wifi/java/android/net/wifi/p2p/IWifiP2pManager.aidl \ packages/services/PacProcessor/com/android/net/IProxyService.aidl \ packages/services/Proxy/com/android/net/IProxyCallback.aidl \ diff --git a/api/current.txt b/api/current.txt index 97c1c74267dfd..5a568a00fb11a 100644 --- a/api/current.txt +++ b/api/current.txt @@ -6375,6 +6375,7 @@ package android.content { field public static final java.lang.String USER_SERVICE = "user"; field public static final java.lang.String VIBRATOR_SERVICE = "vibrator"; field public static final java.lang.String WALLPAPER_SERVICE = "wallpaper"; + field public static final java.lang.String WIFI_HOTSPOT_SERVICE = "wifihotspot"; field public static final java.lang.String WIFI_P2P_SERVICE = "wifip2p"; field public static final java.lang.String WIFI_SERVICE = "wifi"; field public static final java.lang.String WINDOW_SERVICE = "window"; @@ -16066,6 +16067,19 @@ package android.net.wifi { } +package android.net.wifi.hotspot { + + public abstract interface IWifiHotspotManager implements android.os.IInterface { + method public abstract void test() throws android.os.RemoteException; + } + + public class WifiHotspotManager { + ctor public WifiHotspotManager(android.content.Context, android.net.wifi.hotspot.IWifiHotspotManager); + method public void test(); + } + +} + package android.net.wifi.p2p { public class WifiP2pConfig implements android.os.Parcelable { diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java index 589c82f930509..b2b2571d355bc 100644 --- a/core/java/android/app/ContextImpl.java +++ b/core/java/android/app/ContextImpl.java @@ -75,6 +75,8 @@ import android.net.nsd.INsdManager; import android.net.nsd.NsdManager; import android.net.wifi.IWifiManager; import android.net.wifi.WifiManager; +import android.net.wifi.hotspot.IWifiHotspotManager; +import android.net.wifi.hotspot.WifiHotspotManager; import android.net.wifi.p2p.IWifiP2pManager; import android.net.wifi.p2p.WifiP2pManager; import android.nfc.NfcManager; @@ -552,6 +554,13 @@ class ContextImpl extends Context { return new WifiManager(ctx.getOuterContext(), service); }}); + registerService(WIFI_HOTSPOT_SERVICE, new ServiceFetcher() { + public Object createService(ContextImpl ctx) { + IBinder b = ServiceManager.getService(WIFI_HOTSPOT_SERVICE); + IWifiHotspotManager service = IWifiHotspotManager.Stub.asInterface(b); + return new WifiHotspotManager(ctx.getOuterContext(), service); + }}); + registerService(WIFI_P2P_SERVICE, new ServiceFetcher() { public Object createService(ContextImpl ctx) { IBinder b = ServiceManager.getService(WIFI_P2P_SERVICE); diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index 9f0c384ed5d21..cd91f3b838429 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -1974,6 +1974,7 @@ public abstract class Context { //@hide: NETWORK_STATS_SERVICE, //@hide: NETWORK_POLICY_SERVICE, WIFI_SERVICE, + WIFI_HOTSPOT_SERVICE, WIFI_P2P_SERVICE, NSD_SERVICE, AUDIO_SERVICE, @@ -2322,6 +2323,16 @@ public abstract class Context { */ public static final String WIFI_SERVICE = "wifi"; + /** + * Use with {@link #getSystemService} to retrieve a {@link + * android.net.wifi.hotspot.WifiHotspotManager} for handling management of + * Wi-Fi hotspot access. + * + * @see #getSystemService + * @see android.net.wifi.hotspot.WifiHotspotManager + */ + public static final String WIFI_HOTSPOT_SERVICE = "wifihotspot"; + /** * Use with {@link #getSystemService} to retrieve a {@link * android.net.wifi.p2p.WifiP2pManager} for handling management of diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index c925669c4572b..7b55f4bedbe5b 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -116,6 +116,8 @@ public final class SystemServer { "com.android.server.usb.UsbService$Lifecycle"; private static final String WIFI_SERVICE_CLASS = "com.android.server.wifi.WifiService"; + private static final String WIFI_HOTSPOT_SERVICE_CLASS = + "com.android.server.wifi.hotspot.WifiHotspotService"; private static final String WIFI_P2P_SERVICE_CLASS = "com.android.server.wifi.p2p.WifiP2pService"; private static final String HDMI_CEC_SERVICE_CLASS = @@ -613,6 +615,12 @@ public final class SystemServer { reportWtf("starting Wi-Fi P2pService", e); } + try { + mSystemServiceManager.startService(WIFI_HOTSPOT_SERVICE_CLASS); + } catch (Throwable e) { + reportWtf("starting Wi-Fi HotspotService", e); + } + try { mSystemServiceManager.startService(WIFI_SERVICE_CLASS); } catch (Throwable e) { diff --git a/wifi/java/android/net/wifi/hotspot/IWifiHotspotManager.aidl b/wifi/java/android/net/wifi/hotspot/IWifiHotspotManager.aidl new file mode 100644 index 0000000000000..2b1601bce9936 --- /dev/null +++ b/wifi/java/android/net/wifi/hotspot/IWifiHotspotManager.aidl @@ -0,0 +1,28 @@ +/** + * Copyright (c) 2014, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.net.wifi.hotspot; + +/** + * Interface that allows controlling and querying Hotspot connectivity. + * + * {@hide} + */ +interface IWifiHotspotManager +{ + void test(); +} + diff --git a/wifi/java/android/net/wifi/hotspot/WifiHotspotManager.java b/wifi/java/android/net/wifi/hotspot/WifiHotspotManager.java new file mode 100644 index 0000000000000..ac15017c07054 --- /dev/null +++ b/wifi/java/android/net/wifi/hotspot/WifiHotspotManager.java @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.net.wifi.hotspot; + +import android.content.Context; +import android.os.RemoteException; +import android.util.Log; + +/** + * TODO: doc + */ +public class WifiHotspotManager { + + private static final String TAG = "WifiHotspotManager"; + + private Context mContext; + IWifiHotspotManager mService; + + public WifiHotspotManager(Context context, IWifiHotspotManager service) { + mContext = context; + mService = service; + } + + public void test() { + try{ + Log.d(TAG, "test()"); + mService.test(); + } + catch (RemoteException e) { + Log.e(TAG, "test() exception"); + e.printStackTrace(); + } + } +}