1e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde/* 2e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde * Copyright (C) 2008 The Android Open Source Project 3e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde * 4e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde * Licensed under the Apache License, Version 2.0 (the "License"); 5e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde * you may not use this file except in compliance with the License. 6e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde * You may obtain a copy of the License at 7e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde * 8e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde * http://www.apache.org/licenses/LICENSE-2.0 9e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde * 10e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde * Unless required by applicable law or agreed to in writing, software 11e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde * distributed under the License is distributed on an "AS IS" BASIS, 12e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde * See the License for the specific language governing permissions and 14e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde * limitations under the License. 15e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde */ 16e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde 17a8367288377cbaed6371256ca837b7aa22280706Mitchell Willspackage com.android.server.wifi.scanner; 18e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde 19e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapndeimport android.content.Context; 2094bd575cb4766ed0dfbaad0fc7719a9e9e85a260Mitchell Willsimport android.os.HandlerThread; 21e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapndeimport android.util.Log; 22e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde 23e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapndeimport com.android.server.SystemService; 2494bd575cb4766ed0dfbaad0fc7719a9e9e85a260Mitchell Willsimport com.android.server.am.BatteryStatsService; 25a8367288377cbaed6371256ca837b7aa22280706Mitchell Willsimport com.android.server.wifi.WifiInjector; 26e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde 27e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapndepublic class WifiScanningService extends SystemService { 28e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde 29297c3acabe7a85eb87240fe3ccf772e57ce6aef7Mitchell Wills static final String TAG = "WifiScanningService"; 3094bd575cb4766ed0dfbaad0fc7719a9e9e85a260Mitchell Wills private final WifiScanningServiceImpl mImpl; 3194bd575cb4766ed0dfbaad0fc7719a9e9e85a260Mitchell Wills private final HandlerThread mHandlerThread; 32e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde 3350e20834408a3ee55170f8a34dfaeee26e7403ddVinit Deshapnde public WifiScanningService(Context context) { 3450e20834408a3ee55170f8a34dfaeee26e7403ddVinit Deshapnde super(context); 35e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde Log.i(TAG, "Creating " + Context.WIFI_SCANNING_SERVICE); 3694bd575cb4766ed0dfbaad0fc7719a9e9e85a260Mitchell Wills mHandlerThread = new HandlerThread("WifiScanningService"); 3794bd575cb4766ed0dfbaad0fc7719a9e9e85a260Mitchell Wills mHandlerThread.start(); 3894bd575cb4766ed0dfbaad0fc7719a9e9e85a260Mitchell Wills mImpl = new WifiScanningServiceImpl(getContext(), mHandlerThread.getLooper(), 39c2c2648141e6190d85601ee8a6a1d0034e7ff927Glen Kuhne WifiScannerImpl.DEFAULT_FACTORY, BatteryStatsService.getService(), 40c2c2648141e6190d85601ee8a6a1d0034e7ff927Glen Kuhne WifiInjector.getInstance()); 41e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde } 42e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde 43e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde @Override 44e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde public void onStart() { 4594bd575cb4766ed0dfbaad0fc7719a9e9e85a260Mitchell Wills Log.i(TAG, "Publishing " + Context.WIFI_SCANNING_SERVICE); 46e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde publishBinderService(Context.WIFI_SCANNING_SERVICE, mImpl); 47e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde } 48e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde 49e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde @Override 50e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde public void onBootPhase(int phase) { 51e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde if (phase == SystemService.PHASE_SYSTEM_SERVICES_READY) { 5294bd575cb4766ed0dfbaad0fc7719a9e9e85a260Mitchell Wills Log.i(TAG, "Starting " + Context.WIFI_SCANNING_SERVICE); 5318786eca942042388748b0d98979f21c9dff4a89Mitchell Wills mImpl.startService(); 54e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde } 55e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde } 56e4e3750390bec0a849a9153348b7c21b2cc8b843Vinit Deshapnde} 57