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