Android Open Source - Bluetooth Device List Activity






From Project

Back to project page Bluetooth.

License

The source code is released under:

GNU General Public License

If you think the Android project Bluetooth listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package heck.pinball.ghostscanner;
//w  ww  .  j  ava 2  s.com
/**
 * Created by Technician on 5/6/14.
 */
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

import java.util.Set;

//derived from Google's BT Chat example
public class  DeviceListActivity extends Activity {
   // debugging
   private static final String TAG = "DeviceListActivity";

   private static final boolean D = true;

   // return intent extra
   public static String EXTRA_DEVICE_ADDRESS = "device_addres";

   // member fields
   private BluetoothAdapter mBtAdapter;

   private ArrayAdapter<String> mPairedDevicesArrayAdapter;

   private ArrayAdapter<String> mNewDevicesArrayAdapter;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      // set up the window
      setContentView(R.layout.device_list);

      // set result cancelled in case user backs out
      setResult(Activity.RESULT_CANCELED);

      // initialize button to perform device discovery
      Button scanButton = (Button) findViewById(R.id.button_scan);
      scanButton.setOnClickListener(new OnClickListener() {
         public void onClick(View v) {
            doDiscovery();
            v.setVisibility(View.GONE);
         }
      });

      // initialize array adapters. one for already paired, and one for new
      mPairedDevicesArrayAdapter = new ArrayAdapter<String>(this, R.layout.device_name);
      mNewDevicesArrayAdapter = new ArrayAdapter<String>(this, R.layout.device_name);

      // find and set up listview for paired
      ListView pairedListView = (ListView) findViewById(R.id.paired_devices);
      pairedListView.setAdapter(mPairedDevicesArrayAdapter);
      pairedListView.setOnItemClickListener(mDeviceClickListener);

      // find and set up listview for newly discovered devices
      ListView newDevicesListView = (ListView) findViewById(R.id.new_devices);
      newDevicesListView.setAdapter(mNewDevicesArrayAdapter);
      newDevicesListView.setOnItemClickListener(mDeviceClickListener);

      // register for broadcast when device is discovered
      IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
      this.registerReceiver(mReceiver, filter);

      // reigster for boardcasts when discovery is finished
      filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
      this.registerReceiver(mReceiver, filter);

      // get local adapter
      mBtAdapter = BluetoothAdapter.getDefaultAdapter();

      // get a set of currently paired devices
      Set<BluetoothDevice> pairedDevices = mBtAdapter.getBondedDevices();

      // if there are paired devices add to arrayadapter
      if (pairedDevices.size() > 0) {
         findViewById(R.id.title_paired_devices).setVisibility(View.VISIBLE);
         for (BluetoothDevice device : pairedDevices) {
            mPairedDevicesArrayAdapter.add(device.getName() + "\n" + device.getAddress());
         }
      } else {
         String noDevices = getResources().getText(R.string.none_paired).toString();
         mPairedDevicesArrayAdapter.add(noDevices);
      }

   }

   @Override
   protected void onDestroy() {
      super.onDestroy();

      // make sure we're not doing discovery
      if (mBtAdapter != null) {
         mBtAdapter.cancelDiscovery();
      }

      // unregister broadcast listeners
      this.unregisterReceiver(mReceiver);
   }

   // start device discovery with btadapter
   private void doDiscovery() {
      if (D)
         Log.d(TAG, "doDiscovery()");

      // indicate scanning in the title
      setProgressBarIndeterminateVisibility(true);
      setTitle(R.string.scanning);

      // turn on sub-title for new devices
      findViewById(R.id.title_new_devices).setVisibility(View.VISIBLE);

      // if we're already discovering, stop it
      if (mBtAdapter.isDiscovering()) {
         mBtAdapter.cancelDiscovery();
      }

      // request discover
      mBtAdapter.startDiscovery();
   }

   // the onclick listener
   private OnItemClickListener mDeviceClickListener = new OnItemClickListener() {
      public void onItemClick(AdapterView<?> av, View v, int arg2, long arg3) {
         // cancel discovery because its costly
         mBtAdapter.cancelDiscovery();

         // get the device mac which is last 17 chars in view
         String info = ((TextView) v).getText().toString();
         String address = info.substring(info.length() - 17);

         // create the result intent and include mac
         Intent intent = new Intent();
         intent.putExtra(EXTRA_DEVICE_ADDRESS, address);

         // set result and finish activity
         setResult(Activity.RESULT_OK, intent);
         finish();
      }
   };

   // the broadcast receiver that listens for devices and changes title
   private final BroadcastReceiver mReceiver = new BroadcastReceiver() {

      @Override
      public void onReceive(Context context, Intent intent) {
         String action = intent.getAction();

         // when discovery finds a device
         if (BluetoothDevice.ACTION_FOUND.equals(action)) {
            // get the device object from intent
            BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

            // if its already paired, skip it because its on the list
            if (device.getBondState() != BluetoothDevice.BOND_BONDED) {
               mNewDevicesArrayAdapter.add(device.getName() + "\n" + device.getAddress());
            }
            // when discovery finsihed, change the title
            else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
               setProgressBarIndeterminateVisibility(false);
               setTitle(R.string.select_device);
               if (mNewDevicesArrayAdapter.getCount() == 0) {
                  String noDevices = getResources().getText(R.string.none_found).toString();
                  mNewDevicesArrayAdapter.add(noDevices);
               }
            }
         }
      }

   };

}




Java Source Code List

Android.Arduino.Bluetooth.AndroidArduino.java
Android.Arduino.Bluetooth.AndroidArduino.java
Android.Arduino.Bluetooth.BluetoothTest.java
Android.Arduino.Bluetooth.BluetoothTest.java
Android.Arduino.Bluetooth.BuildConfig.java
beta.ArduinoidBlue.ActivityMain.java
beta.delux.ghostscanner.ActivityMain.java
beta.delux.ghostscanner.FragmentAbout.java
beta.delux.ghostscanner.FragmentBluetooth.java
beta.delux.ghostscanner.FragmentLights.java
beta.delux.ghostscanner.FragmentMotors.java
beta.delux.ghostscanner.FragmentSolenoids.java
beta.delux.ghostscanner.FragmentSwitches.java
beta.delux.ghostscanner.HandlerBluetoothSPP.java
beta.delux.ghostscanner.HandlerBluetooth.java
beta.delux.ghostscanner.SimpleGhost.java
beta.delux.ghostscanner.ThreadUpdate_00.java
.blkuetoothconnect.java
.bluetoothExamplemainactivity.java
com.colecago.santa.AboutInfoActivity.java
com.colecago.santa.AboutInfoActivity.java
com.colecago.santa.BtHelperHandler.java
com.colecago.santa.BtHelperHandler.java
com.colecago.santa.BtSPPHelper.java
com.colecago.santa.BtSPPHelper.java
com.colecago.santa.BuildConfig.java
com.colecago.santa.DeviceListActivity.java
com.colecago.santa.DeviceListActivity.java
com.colecago.santa.MainActivity.java
com.colecago.santa.MainActivity.java
example.redux.bluetoothchat.BluetoothChatService.java
example.redux.bluetoothchat.BluetoothChatService.java
example.redux.bluetoothchat.BluetoothChat.java
example.redux.bluetoothchat.BluetoothChat.java
example.redux.bluetoothchat.DeviceListActivity.java
example.redux.bluetoothchat.DeviceListActivity.java
ghostscanner_00.ghostscanner.GhostScanner_00.java
ghostscanner_00.ghostscanner.MainActivity.java
heck.pinball.ghostscanner.AboutFragment.java
heck.pinball.ghostscanner.BluetoothFragment.java
heck.pinball.ghostscanner.BluetoothHandlerSPP.java
heck.pinball.ghostscanner.BluetoothHandler.java
heck.pinball.ghostscanner.BluetoothService.java
heck.pinball.ghostscanner.DeviceListActivity.java
heck.pinball.ghostscanner.LightsFragment.java
heck.pinball.ghostscanner.MainActivity.java
heck.pinball.ghostscanner.MotorsFragment.java
heck.pinball.ghostscanner.SolenoidsFragment.java
heck.pinball.ghostscanner.SwitchesFragment.java
heck.pinball.simpleghost.simpleghost.BluetoothActivity.java
heck.pinball.simpleghost.simpleghost.BluetoothActivity.java
heck.pinball.simpleghost.simpleghost.MainActivity.java
heck.pinball.simpleghost.simpleghost.MainActivity.java
.mainactivity.java