Introduction
After creating a USB locker, here it's time for a Bluetooth locker. You can check my article on USB Desktop locker. And after doing this, I thought why don't I create an Android application to access the operation. So let's come and check how to create our very own Bluetooth desktop locker with an Android app.
Process
The logic between a USB locker and a Bluetooth locker is a little bit different. In the USB locker, it's searching for a file and the content of that file. But here, we will check to discover the Bluetooth device in an interval. So before you proceed into this tip, you can go through the USB desktop locker post of mine. It will clear the logic to lock and unlock your desktop.
Using the Code
Let's come to the code. First, you need to discover the on bluetooth devices near your device. To do that, follow the below code:
InTheHand.Net.Sockets.BluetoothClient bc = new InTheHand.Net.Sockets.BluetoothClient();
InTheHand.Net.Sockets.BluetoothDeviceInfo[] array = bc.DiscoverDevices();
In the array, all the discoverable devices will be enlisted. Now you have to check the mac address of each devices.
for (int i = 0; i < array.Length; i++)
{
this.address_array[i] = array[i].DeviceAddress;
mac = mac + this.address_array[i].ToString();
}
Now the checking will be done. Check the mac address of your device is present in the discoverable devices or not. If found, do nothing else lock the computer. How to lock the computer, it is available in the USB desktop locker post. Hence, I am posting it once again.
[DllImport("user32.dll", SetLastError = true)]
static extern bool LockWorkStation();
bool result = LockWorkStation();
if (result == false)
{
throw new Win32Exception(Marshal.GetLastWin32Error());
}
Now the last one. Add a timer and set the interval, enable it and on the tick method, write down the code that I have explained.
After doing the desktop application, allow me to proceed to the second section...the Android application to operate it. Logic behind this is very simple. Just make an app to turn off and on the Bluetooth. I know you will say it's a stupid one. Everybody can switch on and off the Bluetooth of a device. But we believe in JO DIKHTA HAI WOH BIKTA HAI
(that which is seen can be sold).
So why not make an Android app for this one. I kept it very simple. You guys made it as colorful as you want.
Write down the code to turn on and off the Bluetooth of an Android device.
Design
<relativelayout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
tools:context=".MainActivity" android:paddingtop="@dimen/activity_vertical_margin"
android:paddingright="@dimen/activity_horizontal_margin"
android:paddingleft="@dimen/activity_horizontal_margin"
android:paddingbottom="@dimen/activity_vertical_margin"
android:layout_width="match_parent" android:layout_height="match_parent">
<textview android:id="@+id/out" android:layout_width="wrap_content"
android:layout_height="wrap_content">
<button android:id="@+id/button1"
android:layout_alignparentleft="true"
android:layout_alignparenttop="true"
android:layout_height="wrap_content"
android:layout_marginleft="30dp"
android:layout_margintop="49dp"
android:layout_width="wrap_content"
android:text="TURN_ON"></button>
<button android:id="@+id/button2"
android:layout_alignleft="@+id/button1"
android:layout_below="@+id/button1"
android:layout_height="wrap_content"
android:layout_margintop="27dp"
android:layout_width="wrap_content"
android:text="DISCOVERABLE"></button>
<button android:id="@+id/button3"
android:layout_alignleft="@+id/button2"
android:layout_below="@+id/button2"
android:layout_height="wrap_content"
android:layout_margintop="28dp"
android:layout_width="wrap_content"
android:text="TURN_OFF"></button>
</relativelayout>
Code
package com.example.blutooth01;
import android.os.Bundle;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private static final int REQUEST_ENABLE_BT = 0;
private static final int REQUEST_DISCOVERABLE_BT = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView out=(TextView)findViewById(R.id.out);
final Button button1 = (Button) findViewById(R.id.button1);
final Button button2 = (Button) findViewById(R.id.button2);
final Button button3 = (Button) findViewById(R.id.button3);
final BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter == null) {
out.append("device not supported");
}
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (!mBluetoothAdapter.isEnabled()) {
Intent enableBtIntent =
new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if (!mBluetoothAdapter.isDiscovering()) {
Toast.makeText(getApplicationContext(),
"MAKING YOUR DEVICE DISCOVERABLE",
Toast.LENGTH_LONG);
Intent enableBtIntent =
new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
startActivityForResult(enableBtIntent, REQUEST_DISCOVERABLE_BT);
}
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
mBluetoothAdapter.disable();
Toast.makeText(getApplicationContext(),
"TURNING_OFF BLUETOOTH", Toast.LENGTH_LONG);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
And in the AndroidMainfest.XML file write down the code.
Download the full source code. Links are available at the top of the post.