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 ");
     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         if (V) Log.v(TAG,"***********action = " + action);
     57 
     58         boolean startService = true;
     59         if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
     60             int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
     61             in.putExtra(BluetoothAdapter.EXTRA_STATE, state);
     62             if (V) Log.v(TAG,"***********state = " + state);
     63             if ((state == BluetoothAdapter.STATE_TURNING_ON)
     64                     || (state == BluetoothAdapter.STATE_OFF)) {
     65                 //FIX: We turn on PBAP after BluetoothAdapter.STATE_ON,
     66                 //but we turn off PBAP right after BluetoothAdapter.STATE_TURNING_OFF
     67                 startService = false;
     68             }
     69         } else {
     70             // Don't forward intent unless device has bluetooth and bluetooth is enabled.
     71             BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
     72             if (adapter == null || !adapter.isEnabled()) {
     73                 startService = false;
     74             }
     75         }
     76         if (startService) {
     77             if (V) Log.v(TAG,"***********Calling start service!!!! with action = " + in.getAction());
     78             context.startService(in);
     79         }
     80     }
     81 }
     82