Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.led.led;
- import android.support.v7.app.ActionBarActivity;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.bluetooth.BluetoothSocket;
- import android.content.Intent;
- import android.view.View;
- import android.widget.Button;
- import android.widget.RelativeLayout;
- import android.widget.SeekBar;
- import android.widget.SeekBar.OnSeekBarChangeListener;
- import android.widget.TextView;
- import android.widget.Toast;
- import android.app.ProgressDialog;
- import android.bluetooth.BluetoothAdapter;
- import android.bluetooth.BluetoothDevice;
- import android.os.AsyncTask;
- import java.io.IOException;
- import java.util.UUID;
- public class ledControl extends ActionBarActivity implements OnSeekBarChangeListener {
- RelativeLayout myscreen;
- Button btnOn, btnOff, btnDis, btnFadeOn, btnFadeOff;
- SeekBar rseekbar;
- SeekBar gseekbar;
- SeekBar bseekbar;
- TextView prog1;
- TextView prog2;
- TextView prog3;
- String cydzik;
- int ledon;
- int red = 200;
- int green = 200;
- int blue = 200;
- String address = null;
- private ProgressDialog progress;
- BluetoothAdapter myBluetooth = null;
- BluetoothSocket btSocket = null;
- private boolean isBtConnected = false;
- //SPP UUID. Look for it
- static final UUID myUUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
- @Override
- protected void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- Intent newint = getIntent();
- address = newint.getStringExtra(DeviceList.EXTRA_ADDRESS); //receive the address of the bluetooth device
- //view of the ledControl
- setContentView(R.layout.activity_led_control);
- //do zmiany koloru tla
- myscreen = (RelativeLayout)findViewById(R.id.mylayout);
- //call the widgtes
- btnOn = (Button)findViewById(R.id.button2);
- btnOff = (Button)findViewById(R.id.button3);
- btnDis = (Button)findViewById(R.id.button4);
- btnFadeOn = (Button)findViewById(R.id.button5);
- btnFadeOff = (Button)findViewById(R.id.button6);
- rseekbar = (SeekBar)findViewById(R.id.redseekBar);
- prog1 = (TextView)findViewById(R.id.prog1);
- gseekbar = (SeekBar)findViewById(R.id.greenseekBar);
- prog2 = (TextView)findViewById(R.id.prog2);
- bseekbar = (SeekBar)findViewById(R.id.blueseekBar);
- prog3 = (TextView)findViewById(R.id.prog3);
- rseekbar.setOnSeekBarChangeListener(this);
- gseekbar.setOnSeekBarChangeListener(this);
- bseekbar.setOnSeekBarChangeListener(this);
- new ConnectBT().execute(); //Call the class to connect
- //commands to be sent to bluetooth
- btnOn.setOnClickListener(new View.OnClickListener()
- {
- @Override
- public void onClick(View v)
- {
- rseekbar.setVisibility(View.VISIBLE);
- gseekbar.setVisibility(View.VISIBLE);
- bseekbar.setVisibility(View.VISIBLE);
- btnFadeOn.setVisibility(View.VISIBLE);
- btnFadeOff.setVisibility(View.VISIBLE);
- prog1.setVisibility(View.VISIBLE);
- prog2.setVisibility(View.VISIBLE);
- prog3.setVisibility(View.VISIBLE);
- prog1.setText("R: 0/255");
- prog2.setText("G: 0/255");
- prog3.setText("B: 0/255");
- rseekbar.setProgress(0);
- gseekbar.setProgress(0);
- bseekbar.setProgress(0);
- red = green = blue = 200;
- ledon = 1; //method to turn on
- sending();
- updatebackground();
- }
- });
- btnOff.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v)
- {
- rseekbar.setVisibility(View.GONE);
- gseekbar.setVisibility(View.GONE);
- bseekbar.setVisibility(View.GONE);
- btnFadeOn.setVisibility(View.GONE);
- btnFadeOff.setVisibility(View.GONE);
- rseekbar.setProgress(0);
- gseekbar.setProgress(0);
- bseekbar.setProgress(0);
- red = green = blue = 200;
- myscreen.setBackgroundColor(0xff000000 + red * 0x10000 + green * 0x100 + blue);
- ledon = 0; //method to turn off
- sending();
- }
- });
- btnDis.setOnClickListener(new View.OnClickListener()
- {
- @Override
- public void onClick(View v)
- {
- Disconnect(); //close connection
- }
- });
- rseekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
- @Override
- public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
- if (fromUser == true) {
- prog1.setText("R: " + String.valueOf(progress) + "/" + seekBar.getMax());
- updatebackground();
- sending();
- }
- }
- @Override
- public void onStartTrackingTouch(SeekBar seekBar) {
- }
- @Override
- public void onStopTrackingTouch(SeekBar seekBar) {
- }
- });
- gseekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
- @Override
- public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
- if (fromUser==true)
- {
- prog2.setText("G: " + String.valueOf(progress) + "/" + seekBar.getMax());
- updatebackground();
- sending();
- }
- }
- @Override
- public void onStartTrackingTouch(SeekBar seekBar) {
- }
- @Override
- public void onStopTrackingTouch(SeekBar seekBar) {
- }
- });
- bseekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
- @Override
- public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
- if (fromUser == true) {
- prog3.setText("B: " + String.valueOf(progress) + "/" + seekBar.getMax());
- updatebackground();
- sending();
- }
- }
- @Override
- public void onStartTrackingTouch(SeekBar seekBar) {
- }
- @Override
- public void onStopTrackingTouch(SeekBar seekBar) {
- }
- });
- }
- private void sending() {
- cydzik = ledon + "," + red + "," + green + "," + blue + "\n";
- if (btSocket!=null) //If the btSocket jest zajety
- {
- try
- {
- btSocket.getOutputStream().write(String.valueOf(cydzik).getBytes());
- }
- catch (IOException e)
- { msg("Error");}
- }
- }
- private void updatebackground(){
- red = rseekbar.getProgress();
- green = gseekbar.getProgress();
- blue = bseekbar.getProgress();
- myscreen.setBackgroundColor(0xff000000 + red * 0x10000 + green * 0x100 + blue);
- }
- private void Disconnect()
- {
- if (btSocket!=null) //If the btSocket is busy
- {
- try
- {
- btSocket.close(); //close connection
- }
- catch (IOException e)
- { msg("Error");}
- }
- finish(); //return to the first layout
- }
- // fast way to call Toast
- private void msg(String s)
- {
- Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show();
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.menu_led_control, menu);
- return true;
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- // Handle action bar item clicks here. The action bar will
- // automatically handle clicks on the Home/Up button, so long
- // as you specify a parent activity in AndroidManifest.xml.
- int id = item.getItemId();
- //noinspection SimplifiableIfStatement
- if (id == R.id.action_settings) {
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
- // TUTAJ DODANE METODY Z IMPLEMENTS!!!!!!!!!!!!!!!!!
- @Override
- public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
- }
- @Override
- public void onStartTrackingTouch(SeekBar seekBar) {
- }
- @Override
- public void onStopTrackingTouch(SeekBar seekBar) {
- }
- private class ConnectBT extends AsyncTask<Void, Void, Void> // UI thread
- {
- private boolean ConnectSuccess = true; //if it's here, it's almost connected
- @Override
- protected void onPreExecute()
- {
- progress = ProgressDialog.show(ledControl.this, "Connecting...", "Please wait!!!"); //show a progress dialog
- }
- @Override
- protected Void doInBackground(Void... devices) //while the progress dialog is shown, the connection is done in background
- {
- try
- {
- if (btSocket == null || !isBtConnected)
- {
- myBluetooth = BluetoothAdapter.getDefaultAdapter();//get the mobile bluetooth device
- BluetoothDevice dispositivo = myBluetooth.getRemoteDevice(address);//connects to the device's address and checks if it's available
- btSocket = dispositivo.createInsecureRfcommSocketToServiceRecord(myUUID);//create a RFCOMM (SPP) connection
- BluetoothAdapter.getDefaultAdapter().cancelDiscovery();
- btSocket.connect();//start connection
- }
- }
- catch (IOException e)
- {
- ConnectSuccess = false;//if the try failed, you can check the exception here
- }
- return null;
- }
- @Override
- protected void onPostExecute(Void result) //after the doInBackground, it checks if everything went fine
- {
- super.onPostExecute(result);
- if (!ConnectSuccess)
- {
- msg("Connection Failed. Is it a SPP Bluetooth? Try again.");
- finish();
- }
- else
- {
- msg("Connected.");
- isBtConnected = true;
- }
- progress.dismiss();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement