Android Bluetooth Example

Android Bluetooth Example

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context=".MainActivity" >

  <TextView
       android:id="@+id/text"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textAppearance="?android:attr/textAppearanceLarge"
       android:text="@string/Text" />
     
   <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:orientation="horizontal"
      android:layout_marginTop="30dp" >

   <Button
      android:id="@+id/turnOn"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/on" />

   <Button
      android:id="@+id/turnOff"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/off" />

   </LinearLayout>
   
   
   <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:orientation="vertical"
      android:layout_marginTop="80dp" >
   
    <Button
       android:id="@+id/paired"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/List" />
      
    <Button
       android:id="@+id/search"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/Find" />

    <ListView
        android:id="@+id/listView1"
        android:layout_width="fill_parent"
        android:layout_height="200dp" >
 
    </ListView>

   </LinearLayout>

</RelativeLayout>

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">BluetoothTest</string>
    <string name="action_settings">Settings</string>
    <string name="Text">Status: -</string>
    <string name="on">Turn On</string>
    <string name="off">Turn Off</string>
    <string name="List">List paired Devices</string>
    <string name="Find">Search new Devices / Cancel</string>

</resources>

MainActivity.java


import android.os.Bundle;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
import android.content.Context;
import java.util.Set;
import android.content.Intent;
import android.content.IntentFilter;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

   private static final int REQUEST_ENABLE_BT = 1;
   private Button onBtn;
   private Button offBtn;
   private Button listBtn;
   private Button findBtn;
   private TextView text;
   private BluetoothAdapter myBluetoothAdapter;
   private Set<BluetoothDevice> pairedDevices;
   private ListView myListView;
   private ArrayAdapter<String> BTArrayAdapter;
  
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      
      // take an instance of BluetoothAdapter - Bluetooth radio
      myBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
      if(myBluetoothAdapter == null) {
       onBtn.setEnabled(false);
       offBtn.setEnabled(false);
       listBtn.setEnabled(false);
       findBtn.setEnabled(false);
       text.setText("Status: not supported");
       
       Toast.makeText(getApplicationContext(),"Your device does not support Bluetooth",
            Toast.LENGTH_LONG).show();
      } else {
       text = (TextView) findViewById(R.id.text);
       onBtn = (Button)findViewById(R.id.turnOn);
       onBtn.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    on(v);
   }
       });
       
       offBtn = (Button)findViewById(R.id.turnOff);
       offBtn.setOnClickListener(new OnClickListener() {
     
     @Override
     public void onClick(View v) {
      // TODO Auto-generated method stub
      off(v);
     }
       });
       
       listBtn = (Button)findViewById(R.id.paired);
       listBtn.setOnClickListener(new OnClickListener() {
     
     @Override
     public void onClick(View v) {
      // TODO Auto-generated method stub
      list(v);
     }
       });
       
       findBtn = (Button)findViewById(R.id.search);
       findBtn.setOnClickListener(new OnClickListener() {
     
     @Override
     public void onClick(View v) {
      // TODO Auto-generated method stub
      find(v);
     }
       });
     
       myListView = (ListView)findViewById(R.id.listView1);
 
       // create the arrayAdapter that contains the BTDevices, and set it to the ListView
       BTArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
       myListView.setAdapter(BTArrayAdapter);
      }
   }

   public void on(View view){
      if (!myBluetoothAdapter.isEnabled()) {
         Intent turnOnIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
         startActivityForResult(turnOnIntent, REQUEST_ENABLE_BT);

         Toast.makeText(getApplicationContext(),"Bluetooth turned on" ,
           Toast.LENGTH_LONG).show();
      }
      else{
         Toast.makeText(getApplicationContext(),"Bluetooth is already on",
           Toast.LENGTH_LONG).show();
      }
   }
   
   @Override
   protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    if(requestCode == REQUEST_ENABLE_BT){
     if(myBluetoothAdapter.isEnabled()) {
      text.setText("Status: Enabled");
     } else {   
      text.setText("Status: Disabled");
     }
    }
   }
   
   public void list(View view){
   // get paired devices
      pairedDevices = myBluetoothAdapter.getBondedDevices();
      
      // put it's one to the adapter
      for(BluetoothDevice device : pairedDevices)
       BTArrayAdapter.add(device.getName()+ "\n" + device.getAddress());

      Toast.makeText(getApplicationContext(),"Show Paired Devices",
        Toast.LENGTH_SHORT).show();
      
   }
   
   final BroadcastReceiver bReceiver = new BroadcastReceiver() {
     public void onReceive(Context context, Intent intent) {
         String action = intent.getAction();
         // When discovery finds a device
         if (BluetoothDevice.ACTION_FOUND.equals(action)) {
              // Get the BluetoothDevice object from the Intent
           BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
           // add the name and the MAC address of the object to the arrayAdapter
              BTArrayAdapter.add(device.getName() + "\n" + device.getAddress());
              BTArrayAdapter.notifyDataSetChanged();
         }
     }
 };
 
   public void find(View view) {
    if (myBluetoothAdapter.isDiscovering()) {
     // the button is pressed when it discovers, so cancel the discovery
     myBluetoothAdapter.cancelDiscovery();
    }
    else {
   BTArrayAdapter.clear();
   myBluetoothAdapter.startDiscovery();
   
   registerReceiver(bReceiver, new IntentFilter(BluetoothDevice.ACTION_FOUND)); 
  }    
   }
   
   public void off(View view){
   myBluetoothAdapter.disable();
   text.setText("Status: Disconnected");
   
      Toast.makeText(getApplicationContext(),"Bluetooth turned off",
        Toast.LENGTH_LONG).show();
   }
   
   @Override
   protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    unregisterReceiver(bReceiver);
   }
  
}

In Manifest.xml
 <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

I Am Not The Owner Of These Code .I Merely Have Copied Them From Various Sources. The Only Thing I Did Is That I Am Going To Present Them In More Easy Way To Understand.

Comments

Popular posts from this blog

LED Blinking using 8051 Microcontroller and Keil C – AT89C51

Android Camera Example 2

Java Script to make text change text color