0% found this document useful (0 votes)
29 views4 pages

Practical No 24 2308

The document contains code for an Android application that manages Bluetooth functionality, including turning Bluetooth on and off, making the device discoverable, and listing paired devices. It includes XML layout definitions for the user interface and Java code for the main activity to handle Bluetooth operations and permissions. The application requests necessary Bluetooth permissions in the AndroidManifest.xml file.

Uploaded by

adityadengale16
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views4 pages

Practical No 24 2308

The document contains code for an Android application that manages Bluetooth functionality, including turning Bluetooth on and off, making the device discoverable, and listing paired devices. It includes XML layout definitions for the user interface and Java code for the main activity to handle Bluetooth operations and permissions. The application requests necessary Bluetooth permissions in the AndroidManifest.xml file.

Uploaded by

adityadengale16
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Practical No 24

Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:text="Get visible"
android:onClick="visible"
xmlns:android="http://schemas.android.com/apk/res/and android:id="@+id/button2"
roid" android:layout_alignBottom="@+id/button"
xmlns:tools="http://schemas.android.com/tools" android:layout_centerHorizontal="true" />
android:layout_width="match_parent"
android:layout_height="match_parent" <Button
android:layout_width="wrap_content"
tools:context=".MainActivity" android:layout_height="wrap_content"
android:transitionGroup="true"> android:text="List devices"
android:onClick="list"
<TextView android:text="Bluetooth Example" android:id="@+id/button3"
android:layout_width="wrap_content" android:layout_below="@+id/imageView"
android:layout_height="wrap_content" android:layout_toRightOf="@+id/imageView"
android:id="@+id/textview" android:layout_toEndOf="@+id/imageView" />
android:textSize="35dp"
android:layout_alignParentTop="true" <Button
android:layout_centerHorizontal="true" /> android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="turn off"
android:onClick="off"
<ImageView android:id="@+id/button4"
android:layout_width="wrap_content" android:layout_below="@+id/button"
android:layout_height="100dp" android:layout_alignParentLeft="true"
android:id="@+id/imageView" android:layout_alignParentStart="true" />
android:src="@drawable/bluetooth"
android:layout_below="@+id/textview" <ListView
android:layout_centerHorizontal="true" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:theme="@style/Base.TextAppearance.AppCom android:id="@+id/listView"
pat" /> android:layout_alignParentBottom="true"
android:layout_alignLeft="@+id/button"
<Button android:layout_alignStart="@+id/button"
android:layout_width="wrap_content" android:layout_below="@+id/textView2" />
android:layout_height="wrap_content"
android:text="Turn On" <TextView
android:id="@+id/button" android:layout_width="wrap_content"
android:layout_below="@+id/imageView" android:layout_height="wrap_content"
android:layout_toStartOf="@+id/imageView" android:text="Paired devices:"
android:layout_toLeftOf="@+id/imageView" android:id="@+id/textView2"
android:clickable="true" android:textColor="#ff34ff06"
android:onClick="on" /> android:textSize="25dp"
android:layout_below="@+id/button4"
<Button android:layout_alignLeft="@+id/listView"
android:layout_width="wrap_content" android:layout_alignStart="@+id/listView" />
android:layout_height="wrap_content"
</RelativeLayout>
MainActivity.java
android.Manifest.permission.BLUETOOTH_CONNEC
package com.example.practicals;
T,
import android.content.pm.PackageManager;
android.Manifest.permission.BLUETOOTH_ADVERTI
import android.os.Bundle;
SE
}, 1);
import androidx.annotation.NonNull;
}
import androidx.core.app.ActivityCompat;
}
import androidx.appcompat.app.AppCompatActivity;
// ✅ Turn On Bluetooth
import android.app.Activity;
public void on(View v) {
import android.bluetooth.BluetoothAdapter;
if (!BA.isEnabled()) {
import android.bluetooth.BluetoothDevice;
Intent turnOn = new
Intent(BluetoothAdapter.ACTION_REQUEST_ENABL
import android.content.Intent;
E);
import android.view.View;
startActivityForResult(turnOn, 0);
Toast.makeText(getApplicationContext(),
import android.widget.ArrayAdapter;
"Bluetooth Turned On",
import android.widget.Button;
Toast.LENGTH_LONG).show();
import android.widget.ListView;
} else {
Toast.makeText(getApplicationContext(),
import android.widget.Toast;
"Bluetooth is Already On",
Toast.LENGTH_LONG).show();
import java.util.ArrayList;
}
import java.util.Set;
}
public class MainActivity extends Activity {
// ✅ Turn Off Bluetooth
Button b1, b2, b3, b4;
public void off(View v) {
private BluetoothAdapter BA;
if (ActivityCompat.checkSelfPermission(this,
private Set<BluetoothDevice> pairedDevices;
android.Manifest.permission.BLUETOOTH_CONNEC
ListView lv;
T) != PackageManager.PERMISSION_GRANTED) {
return;
@Override
}
protected void onCreate(Bundle savedInstanceState) {
BA.disable();
super.onCreate(savedInstanceState);
Toast.makeText(getApplicationContext(),
setContentView(R.layout.activity_main);
"Bluetooth Turned Off",
Toast.LENGTH_LONG).show();
b1 = findViewById(R.id.button);
}
b2 = findViewById(R.id.button2);
b3 = findViewById(R.id.button3);
// ✅ Make Device Discoverable
b4 = findViewById(R.id.button4);
public void visible(View v) {
Intent getVisible = new
BA = BluetoothAdapter.getDefaultAdapter();
Intent(BluetoothAdapter.ACTION_REQUEST_DISCO
lv = findViewById(R.id.listView);
VERABLE);
startActivityForResult(getVisible, 0);
// ✅ Request permissions at runtime for API 31+
}
(Android 12+)
if (ActivityCompat.checkSelfPermission(this,
// ✅ List Paired Devices
android.Manifest.permission.BLUETOOTH_CONNEC
public void list(View v) {
T) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.checkSelfPermission(this,
ActivityCompat.requestPermissions(this, new
android.Manifest.permission.BLUETOOTH_CONNEC
String[]{
T) != PackageManager.PERMISSION_GRANTED) {
return;
}
pairedDevices = BA.getBondedDevices();

ArrayList<String> list = new ArrayList<>();


for (BluetoothDevice bt : pairedDevices) {
list.add(bt.getName());
}

Toast.makeText(getApplicationContext(),
"Showing Paired Devices",
Toast.LENGTH_SHORT).show();

ArrayAdapter<String> adapter = new


ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, list);
lv.setAdapter(adapter);
}

// ✅ Handle Permission Result


@Override
public void onRequestPermissionsResult(int
requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode,
permissions, grantResults);
if (requestCode == 1) {
if (grantResults.length > 0 && grantResults[0]
== PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "Bluetooth permissions
granted", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Bluetooth permissions
denied", Toast.LENGTH_SHORT).show();
}
}
}
}
AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>


<manifest
xmlns:android="http://schemas.android.com/apk/res/and
roid"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.practicals">

<!-- ✅ Bluetooth Permissions -->


<uses-permission
android:name="android.permission.BLUETOOTH"/>
<uses-permission
android:name="android.permission.BLUETOOTH_AD
MIN"/>
<uses-permission
android:name="android.permission.BLUETOOTH_AD
VERTISE"/>
<uses-permission
android:name="android.permission.BLUETOOTH_CO
NNECT"/>

<application
android:allowBackup="true"

android:dataExtractionRules="@xml/data_extraction_ru
les"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
tools:targetApi="31">

<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" /
>
</intent-filter>
</activity>
</application>
</manifest>

You might also like