Advertisement
Guest User

Untitled

a guest
Jan 8th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.79 KB | None | 0 0
  1. package com.led.led;
  2.  
  3. import android.support.v7.app.ActionBarActivity;
  4. import android.os.Bundle;
  5. import android.view.Menu;
  6. import android.view.MenuItem;
  7.  
  8. import android.bluetooth.BluetoothSocket;
  9. import android.content.Intent;
  10. import android.view.View;
  11. import android.widget.Button;
  12. import android.widget.RelativeLayout;
  13. import android.widget.SeekBar;
  14. import android.widget.SeekBar.OnSeekBarChangeListener;
  15. import android.widget.TextView;
  16. import android.widget.Toast;
  17. import android.app.ProgressDialog;
  18. import android.bluetooth.BluetoothAdapter;
  19. import android.bluetooth.BluetoothDevice;
  20. import android.os.AsyncTask;
  21.  
  22. import java.io.IOException;
  23. import java.util.UUID;
  24.  
  25.  
  26. public class ledControl extends ActionBarActivity implements OnSeekBarChangeListener {
  27.  
  28. RelativeLayout myscreen;
  29. Button btnOn, btnOff, btnDis, btnFadeOn, btnFadeOff;
  30. SeekBar rseekbar;
  31. SeekBar gseekbar;
  32. SeekBar bseekbar;
  33. TextView prog1;
  34. TextView prog2;
  35. TextView prog3;
  36. String cydzik;
  37. int ledon;
  38. int red = 200;
  39. int green = 200;
  40. int blue = 200;
  41.  
  42. String address = null;
  43. private ProgressDialog progress;
  44. BluetoothAdapter myBluetooth = null;
  45. BluetoothSocket btSocket = null;
  46. private boolean isBtConnected = false;
  47. //SPP UUID. Look for it
  48. static final UUID myUUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
  49.  
  50. @Override
  51. protected void onCreate(Bundle savedInstanceState)
  52. {
  53. super.onCreate(savedInstanceState);
  54.  
  55. Intent newint = getIntent();
  56. address = newint.getStringExtra(DeviceList.EXTRA_ADDRESS); //receive the address of the bluetooth device
  57.  
  58.  
  59. //view of the ledControl
  60. setContentView(R.layout.activity_led_control);
  61. //do zmiany koloru tla
  62. myscreen = (RelativeLayout)findViewById(R.id.mylayout);
  63.  
  64. //call the widgtes
  65. btnOn = (Button)findViewById(R.id.button2);
  66. btnOff = (Button)findViewById(R.id.button3);
  67. btnDis = (Button)findViewById(R.id.button4);
  68. btnFadeOn = (Button)findViewById(R.id.button5);
  69. btnFadeOff = (Button)findViewById(R.id.button6);
  70. rseekbar = (SeekBar)findViewById(R.id.redseekBar);
  71. prog1 = (TextView)findViewById(R.id.prog1);
  72. gseekbar = (SeekBar)findViewById(R.id.greenseekBar);
  73. prog2 = (TextView)findViewById(R.id.prog2);
  74. bseekbar = (SeekBar)findViewById(R.id.blueseekBar);
  75. prog3 = (TextView)findViewById(R.id.prog3);
  76.  
  77. rseekbar.setOnSeekBarChangeListener(this);
  78. gseekbar.setOnSeekBarChangeListener(this);
  79. bseekbar.setOnSeekBarChangeListener(this);
  80.  
  81. new ConnectBT().execute(); //Call the class to connect
  82.  
  83. //commands to be sent to bluetooth
  84. btnOn.setOnClickListener(new View.OnClickListener()
  85. {
  86. @Override
  87. public void onClick(View v)
  88. {
  89. rseekbar.setVisibility(View.VISIBLE);
  90. gseekbar.setVisibility(View.VISIBLE);
  91. bseekbar.setVisibility(View.VISIBLE);
  92. btnFadeOn.setVisibility(View.VISIBLE);
  93. btnFadeOff.setVisibility(View.VISIBLE);
  94. prog1.setVisibility(View.VISIBLE);
  95. prog2.setVisibility(View.VISIBLE);
  96. prog3.setVisibility(View.VISIBLE);
  97. prog1.setText("R: 0/255");
  98. prog2.setText("G: 0/255");
  99. prog3.setText("B: 0/255");
  100. rseekbar.setProgress(0);
  101. gseekbar.setProgress(0);
  102. bseekbar.setProgress(0);
  103. red = green = blue = 200;
  104. ledon = 1; //method to turn on
  105. sending();
  106. updatebackground();
  107. }
  108. });
  109.  
  110. btnOff.setOnClickListener(new View.OnClickListener() {
  111. @Override
  112. public void onClick(View v)
  113. {
  114. rseekbar.setVisibility(View.GONE);
  115. gseekbar.setVisibility(View.GONE);
  116. bseekbar.setVisibility(View.GONE);
  117. btnFadeOn.setVisibility(View.GONE);
  118. btnFadeOff.setVisibility(View.GONE);
  119. rseekbar.setProgress(0);
  120. gseekbar.setProgress(0);
  121. bseekbar.setProgress(0);
  122. red = green = blue = 200;
  123.  
  124. myscreen.setBackgroundColor(0xff000000 + red * 0x10000 + green * 0x100 + blue);
  125. ledon = 0; //method to turn off
  126. sending();
  127. }
  128. });
  129.  
  130. btnDis.setOnClickListener(new View.OnClickListener()
  131. {
  132. @Override
  133. public void onClick(View v)
  134. {
  135. Disconnect(); //close connection
  136. }
  137. });
  138.  
  139. rseekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
  140. @Override
  141. public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
  142.  
  143. if (fromUser == true) {
  144. prog1.setText("R: " + String.valueOf(progress) + "/" + seekBar.getMax());
  145. updatebackground();
  146. sending();
  147. }
  148. }
  149.  
  150. @Override
  151. public void onStartTrackingTouch(SeekBar seekBar) {
  152.  
  153. }
  154.  
  155. @Override
  156. public void onStopTrackingTouch(SeekBar seekBar) {
  157. }
  158. });
  159.  
  160. gseekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
  161. @Override
  162. public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
  163.  
  164. if (fromUser==true)
  165. {
  166. prog2.setText("G: " + String.valueOf(progress) + "/" + seekBar.getMax());
  167. updatebackground();
  168. sending();
  169. }
  170. }
  171.  
  172. @Override
  173. public void onStartTrackingTouch(SeekBar seekBar) {
  174.  
  175. }
  176.  
  177. @Override
  178. public void onStopTrackingTouch(SeekBar seekBar) {
  179.  
  180. }
  181. });
  182.  
  183. bseekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
  184. @Override
  185. public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
  186.  
  187. if (fromUser == true) {
  188. prog3.setText("B: " + String.valueOf(progress) + "/" + seekBar.getMax());
  189. updatebackground();
  190. sending();
  191. }
  192. }
  193.  
  194. @Override
  195. public void onStartTrackingTouch(SeekBar seekBar) {
  196.  
  197. }
  198.  
  199. @Override
  200. public void onStopTrackingTouch(SeekBar seekBar) {
  201. }
  202. });
  203. }
  204. private void sending() {
  205. cydzik = ledon + "," + red + "," + green + "," + blue + "\n";
  206. if (btSocket!=null) //If the btSocket jest zajety
  207. {
  208. try
  209. {
  210. btSocket.getOutputStream().write(String.valueOf(cydzik).getBytes());
  211. }
  212. catch (IOException e)
  213. { msg("Error");}
  214. }
  215. }
  216.  
  217. private void updatebackground(){
  218. red = rseekbar.getProgress();
  219. green = gseekbar.getProgress();
  220. blue = bseekbar.getProgress();
  221. myscreen.setBackgroundColor(0xff000000 + red * 0x10000 + green * 0x100 + blue);
  222. }
  223.  
  224. private void Disconnect()
  225. {
  226. if (btSocket!=null) //If the btSocket is busy
  227. {
  228. try
  229. {
  230. btSocket.close(); //close connection
  231. }
  232. catch (IOException e)
  233. { msg("Error");}
  234. }
  235. finish(); //return to the first layout
  236.  
  237. }
  238.  
  239. // fast way to call Toast
  240. private void msg(String s)
  241. {
  242. Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show();
  243. }
  244.  
  245. @Override
  246. public boolean onCreateOptionsMenu(Menu menu) {
  247. // Inflate the menu; this adds items to the action bar if it is present.
  248. getMenuInflater().inflate(R.menu.menu_led_control, menu);
  249. return true;
  250. }
  251.  
  252. @Override
  253. public boolean onOptionsItemSelected(MenuItem item) {
  254. // Handle action bar item clicks here. The action bar will
  255. // automatically handle clicks on the Home/Up button, so long
  256. // as you specify a parent activity in AndroidManifest.xml.
  257. int id = item.getItemId();
  258.  
  259. //noinspection SimplifiableIfStatement
  260. if (id == R.id.action_settings) {
  261. return true;
  262. }
  263.  
  264. return super.onOptionsItemSelected(item);
  265. }
  266. // TUTAJ DODANE METODY Z IMPLEMENTS!!!!!!!!!!!!!!!!!
  267. @Override
  268. public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
  269.  
  270. }
  271.  
  272. @Override
  273. public void onStartTrackingTouch(SeekBar seekBar) {
  274.  
  275. }
  276.  
  277. @Override
  278. public void onStopTrackingTouch(SeekBar seekBar) {
  279.  
  280. }
  281.  
  282. private class ConnectBT extends AsyncTask<Void, Void, Void> // UI thread
  283. {
  284. private boolean ConnectSuccess = true; //if it's here, it's almost connected
  285.  
  286. @Override
  287. protected void onPreExecute()
  288. {
  289. progress = ProgressDialog.show(ledControl.this, "Connecting...", "Please wait!!!"); //show a progress dialog
  290. }
  291.  
  292. @Override
  293. protected Void doInBackground(Void... devices) //while the progress dialog is shown, the connection is done in background
  294. {
  295. try
  296. {
  297. if (btSocket == null || !isBtConnected)
  298. {
  299. myBluetooth = BluetoothAdapter.getDefaultAdapter();//get the mobile bluetooth device
  300. BluetoothDevice dispositivo = myBluetooth.getRemoteDevice(address);//connects to the device's address and checks if it's available
  301. btSocket = dispositivo.createInsecureRfcommSocketToServiceRecord(myUUID);//create a RFCOMM (SPP) connection
  302. BluetoothAdapter.getDefaultAdapter().cancelDiscovery();
  303. btSocket.connect();//start connection
  304. }
  305. }
  306. catch (IOException e)
  307. {
  308. ConnectSuccess = false;//if the try failed, you can check the exception here
  309. }
  310. return null;
  311. }
  312. @Override
  313. protected void onPostExecute(Void result) //after the doInBackground, it checks if everything went fine
  314. {
  315. super.onPostExecute(result);
  316.  
  317. if (!ConnectSuccess)
  318. {
  319. msg("Connection Failed. Is it a SPP Bluetooth? Try again.");
  320. finish();
  321. }
  322. else
  323. {
  324. msg("Connected.");
  325. isBtConnected = true;
  326. }
  327. progress.dismiss();
  328. }
  329. }
  330. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement