Hur: Skapa en Android App med Android studion att styra LED (6 / 9 steg)
Steg 6: Android:. Klass kod del 2.
Öppna ledControl klass och importera följande paket:
import android.bluetooth.BluetoothSocket;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.widget.SeekBar;
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;
Skapa följande widget variabler:
Knappen btnOn, btnOff, btnDis;
SeekBar ljusstyrka;
Sträng adress = null;
privat ProgressDialog framsteg.
BluetoothAdapter myBluetooth = null;
BluetoothSocket btSocket = null;
privata boolean isBtConnected = false;
statiska slutliga UUID myUUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
Vi måste initiera variabler och hämta enhetsadress bluetooth fick i DeviceList klass.
få adressen till bluetooth-enheten
Avsikt att newint = getIntent();
Adress = newint.getStringExtra(DeviceList.EXTRA_ADDRESS);
Visa av ledControl layout
setContentView(R.layout.activity_led_control);
kalla widgtes
btnOn = (Button)findViewById(R.id.button2);
btnOff = (Button)findViewById(R.id.button3);
btnDis = (Button)findViewById(R.id.button4);
ljusstyrka = (SeekBar)findViewById(R.id.seekBar);
Låt oss skapa en klass för att anslutningen ska upprättas:
privat klassen ConnectBT utökar AsyncTask < Void, Void, Void > / / användargränssnitt tråd
{
privata boolean ConnectSuccess = sant; om det här, är det nästan ansluten
skyddade void onPreExecute()
{
framsteg = ProgressDialog.show (ledControl.this, "Ansluta...", "vänta!"); Visa en dialogruta för framsteg
}
skyddade Void doInBackground (Void... enheter) //while Fortskridadialogen visas, anslutningen sker i bakgrunden
{
försök
{
om (btSocket == null ||! isBtConnected)
{
myBluetooth = BluetoothAdapter.getDefaultAdapter (); //get mobil bluetooth-enheten
BluetoothDevice dispositivo = myBluetooth.getRemoteDevice (adress); //connects till enheten adress och kontrollerar om det finns
btSocket = dispositivo.createInsecureRfcommSocketToServiceRecord (myUUID), //create en RFCOMM (SPP) anslutning
BluetoothAdapter.getDefaultAdapter().cancelDiscovery();
btSocket.connect (); //start anslutning
}
}
fånga (IOException e)
{
ConnectSuccess = false; //if försök misslyckades, kan du kontrollera undantaget här
}
returnera null;
}
skyddade void onPostExecute (ogiltiga resultat) //after doInBackground, kontrollerar den om allt gick bra
{
super.onPostExecute(result);
IF (!. ConnectSuccess)
{
msg ("Anslutning misslyckades. Är det en SPP Bluetooth? Försök igen.");
finish();
}
annat
{
msg("Connected.");
isBtConnected = sant;
}
Progress.dismiss();
}
}
Vi måste "lyssna" när du klickar på knappen för att skriva ett kommando för att slå på / stänga av led, koppla ur och kontroll av ljusstyrkan.
btnOn.setOnClickListener (nya View.OnClickListener()
{
public void VidKlickning (Visa v)
{
turnOnLed(); metod för att slå på
}
});
btnOff.setOnClickListener (nya View.OnClickListener() {
public void VidKlickning (Visa v)
{
turnOffLed(); metod att stänga av
}
});
btnDis.setOnClickListener (nya View.OnClickListener()
{
public void VidKlickning (Visa v)
{
Disconnect(); nära anslutning
}
});
brightness.setOnSeekBarChangeListener (nya SeekBar.OnSeekBarChangeListener() {
public void onProgressChanged (SeekBar seekBar, int framsteg, boolesk fromUser) {
om (fromUser == true)
{
lumn.setText(String.valueOf(progress));
försök
{
btSocket.getOutputStream().write(String.valueOf(progress).getBytes());
}
fånga (IOException e)
{
}
}
}
public void onStartTrackingTouch (SeekBar seekBar) {
}
public void onStopTrackingTouch (SeekBar seekBar) {
}
});
Det finns en metod som kallas msg(); Den här metoden anropar Toast.maketext(); Det är metoden som heter Disconnect(); turnOffLed(); och turnOnLed();
privata void msg (sträng s)
{
Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show();
}
privata void Disconnect()
{
om (btSocket! = null) //If btSocket är upptagen
{
försök
{
btSocket.close(); nära anslutning
}
fånga (IOException e)
{msg("Error");}
}
finish(); återgå till den första layouten
}
privata void turnOffLed()
{
om (btSocket! = null)
{
försök
{
btSocket.getOutputStream().write("TF".toString().getBytes());
}
fånga (IOException e)
{
msg("Error");
}
}
}
privata void turnOnLed()
{
om (btSocket! = null)
{
försök
{
btSocket.getOutputStream().write("TO".toString().getBytes());
}
fånga (IOException e)
{
msg("Error");
}
}
}