Home | History | Annotate | Download | only in pbap
      1 /*
      2  * Copyright (c) 2008-2009, Motorola, Inc.
      3  *
      4  * All rights reserved.
      5  *
      6  * Redistribution and use in source and binary forms, with or without
      7  * modification, are permitted provided that the following conditions are met:
      8  *
      9  * - Redistributions of source code must retain the above copyright notice,
     10  * this list of conditions and the following disclaimer.
     11  *
     12  * - Redistributions in binary form must reproduce the above copyright notice,
     13  * this list of conditions and the following disclaimer in the documentation
     14  * and/or other materials provided with the distribution.
     15  *
     16  * - Neither the name of the Motorola, Inc. nor the names of its contributors
     17  * may be used to endorse or promote products derived from this software
     18  * without specific prior written permission.
     19  *
     20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     23  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
     24  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     25  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     26  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     27  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     28  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     29  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     30  * POSSIBILITY OF SUCH DAMAGE.
     31  */
     32 
     33 package com.android.bluetooth.pbap;
     34 
     35 import android.bluetooth.BluetoothAdapter;
     36 import android.content.BroadcastReceiver;
     37 import android.content.Context;
     38 import android.content.Intent;
     39 import android.util.Log;
     40 
     41 public class BluetoothPbapReceiver extends BroadcastReceiver {
     42 
     43     private static final String TAG = "BluetoothPbapReceiver";
     44 
     45     private static final boolean V = BluetoothPbapService.VERBOSE;
     46 
     47     @Override
     48     public void onReceive(Context context, Intent intent) {
     49         if (V) Log.v(TAG, "PbapReceiver onReceive: " + intent.getAction());
     50 
     51         Intent in = new Intent();
     52         in.putExtras(intent);
     53         in.setClass(context, BluetoothPbapService.class);
     54         String action = intent.getAction();
     55         in.putExtra("action", action);
     56         boolean startService = true;
     57         if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
     58             int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
     59             in.putExtra(BluetoothAdapter.EXTRA_STATE, state);
     60             if ((state == BluetoothAdapter.STATE_TURNING_ON)
     61                     || (state == BluetoothAdapter.STATE_TURNING_OFF)) {
     62                 startService = false;
     63             }
     64         } else {
     65             // Don't forward intent unless device has bluetooth and bluetooth is enabled.
     66             BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
     67             if (adapter == null || !adapter.isEnabled()) {
     68                 startService = false;
     69             }
     70         }
     71         if (startService) {
     72             context.startService(in);
     73         }
     74     }
     75 }
     76