Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.acc;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.util.UUID;
- import com.example.acc.R;
- import android.app.Activity;
- import android.bluetooth.BluetoothAdapter;
- import android.bluetooth.BluetoothDevice;
- import android.bluetooth.BluetoothSocket;
- import android.content.Context;
- import android.content.Intent;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.MenuItem;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.ImageButton;
- import android.widget.Toast;
- public class MainActivity45 extends Activity {
- private static final String TAG = "LEDOnOff";
- ImageButton btnOn;
- private static final int REQUEST_ENABLE_BT = 1;
- private BluetoothAdapter btAdapter = null;
- private BluetoothSocket btSocket = null;
- private OutputStream outStream = null;
- // Well known SPP UUID
- private static final UUID MY_UUID =
- UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
- // Insert your server's MAC address
- private static String address = "00:6A:8E:16:C6:26";
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- Log.d(TAG, "In onCreate()");
- setContentView(R.layout.mainactivity45);
- btnOn = (ImageButton) findViewById(R.id.btnOn);
- btAdapter = BluetoothAdapter.getDefaultAdapter();
- checkBTState();
- btnOn.setOnClickListener(new OnClickListener() {
- int pressed = 0;
- public void onClick(View v) {
- if(pressed<=0){
- sendData("h");
- Toast msg = Toast.makeText(getBaseContext(),
- "Chargement", Toast.LENGTH_SHORT);
- msg.show();
- pressed++;}
- else if(pressed>=1){
- sendData("l");
- Toast msg = Toast.makeText(getBaseContext(),
- "Stop", Toast.LENGTH_SHORT);
- msg.show();
- pressed--;
- }
- }
- });
- }
- @Override
- public void onResume() {
- super.onResume();
- Log.d(TAG, "...In onResume - Attempting client connect...");
- // Set up a pointer to the remote node using it's address.
- BluetoothDevice device = btAdapter.getRemoteDevice(address);
- // Two things are needed to make a connection:
- // A MAC address, which we got above.
- // A Service ID or UUID. In this case we are using the
- // UUID for SPP.
- try {
- btSocket = device.createRfcommSocketToServiceRecord(MY_UUID);
- } catch (IOException e) {
- errorExit("Fatal Error", "In onResume() and socket create failed: " + e.getMessage() + ".");
- }
- // Discovery is resource intensive. Make sure it isn't going on
- // when you attempt to connect and pass your message.
- btAdapter.cancelDiscovery();
- // Establish the connection. This will block until it connects.
- Log.d(TAG, "...Connecting to Remote...");
- try {
- btSocket.connect();
- Log.d(TAG, "...Connection established and data link opened...");
- } catch (IOException e) {
- try {
- btSocket.close();
- } catch (IOException e2) {
- errorExit("Fatal Error", "In onResume() and unable to close socket during connection failure" + e2.getMessage() + ".");
- }
- }
- // Create a data stream so we can talk to server.
- Log.d(TAG, "...Creating Socket...");
- try {
- outStream = btSocket.getOutputStream();
- } catch (IOException e) {
- errorExit("Fatal Error", "In onResume() and output stream creation failed:" + e.getMessage() + ".");
- }
- }
- @Override
- public void onPause() {
- super.onPause();
- Log.d(TAG, "...In onPause()...");
- if (outStream != null) {
- try {
- outStream.flush();
- } catch (IOException e) {
- errorExit("Fatal Error", "In onPause() and failed to flush output stream: " + e.getMessage() + ".");
- }
- }
- try {
- btSocket.close();
- } catch (IOException e2) {
- errorExit("Fatal Error", "In onPause() and failed to close socket." + e2.getMessage() + ".");
- }
- }
- private void checkBTState() {
- // Check for Bluetooth support and then check to make sure it is turned on
- // Emulator doesn't support Bluetooth and will return null
- if(btAdapter==null) {
- errorExit("Fatal Error", "Bluetooth Not supported. Aborting.");
- } else {
- if (btAdapter.isEnabled()) {
- Log.d(TAG, "...Bluetooth is enabled...");
- } else {
- //Prompt user to turn on Bluetooth
- Intent enableBtIntent = new Intent(btAdapter.ACTION_REQUEST_ENABLE);
- startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
- }
- }
- }
- private void errorExit(String title, String message){
- Toast msg = Toast.makeText(getBaseContext(),
- title + " - " + message, Toast.LENGTH_SHORT);
- msg.show();
- finish();
- }
- @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();
- if (id == R.id.action_search) {
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
- private void sendData(String message) {
- byte[] msgBuffer = message.getBytes();
- Log.d(TAG, "...Sending data: " + message + "...");
- try {
- outStream.write(msgBuffer);
- } catch (IOException e) {
- String msg = "In onResume() and an exception occurred during write: " + e.getMessage();
- if (address.equals("00:00:00:00:00:00"))
- msg = msg + ".nnUpdate your server address from 00:00:00:00:00:00 to the correct address on line 37 in the java code";
- msg = msg + ".nnCheck that the SPP UUID: " + MY_UUID.toString() + " exists on server.nn";
- errorExit("Fatal Error", msg);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement