📅  最后修改于: 2021-01-05 05:09:42             🧑  作者: Mango
在许多方法中,蓝牙是在两个不同设备之间发送或接收数据的方法。 Android平台包括对蓝牙框架的支持,该框架允许设备与其他蓝牙设备无线交换数据。
Android提供了蓝牙API来执行这些不同的操作。
扫描其他蓝牙设备
获取已配对设备的列表
通过服务发现连接到其他设备
Android提供了BluetoothAdapter类来与Bluetooth通信。通过调用静态方法getDefaultAdapter()创建此调用的对象。其语法如下。
private BluetoothAdapter BA;
BA = BluetoothAdapter.getDefaultAdapter();
为了启用设备的蓝牙,请使用以下蓝牙常量ACTION_REQUEST_ENABLE调用该意图。它的语法是。
Intent turnOn = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(turnOn, 0);
除了此常量之外,API还提供了其他常量来支持不同的任务。它们在下面列出。
Sr.No | Constant & description |
---|---|
1 |
ACTION_REQUEST_DISCOVERABLE This constant is used for turn on discovering of bluetooth |
2 |
ACTION_STATE_CHANGED This constant will notify that Bluetooth state has been changed |
3 |
ACTION_FOUND This constant is used for receiving information about each device that is discovered |
启用蓝牙后,可以通过调用getBondedDevices()方法获取已配对设备的列表。它返回一组蓝牙设备。它的语法是。
private SetpairedDevices;
pairedDevices = BA.getBondedDevices();
除了被阻止的设备外,API中还有其他方法可以更好地控制蓝牙。它们在下面列出。
Sr.No | Method & description |
---|---|
1 |
enable() This method enables the adapter if not enabled |
2 |
isEnabled() This method returns true if adapter is enabled |
3 |
disable() This method disables the adapter |
4 |
getName() This method returns the name of the Bluetooth adapter |
5 |
setName(String name) This method changes the Bluetooth name |
6 |
getState() This method returns the current state of the Bluetooth Adapter. |
7 |
startDiscovery() This method starts the discovery process of the Bluetooth for 120 seconds. |
此示例演示了BluetoothAdapter类的操作蓝牙方法,并显示了由蓝牙配对的设备列表。
要尝试使用此示例,您需要在实际设备上运行它。
Steps | Description |
---|---|
1 | You will use Android studio to create an Android application a package com.example.sairamkrishna.myapplication. |
2 | Modify src/MainActivity.java file to add the code |
3 | Modify layout XML file res/layout/activity_main.xml add any GUI component if required. |
4 | Modify AndroidManifest.xml to add necessary permissions. |
5 | Run the application and choose a running android device and install the application on it and verify the results. |
这是src / MainActivity.java的内容
package com.example.sairamkrishna.myapplication;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.Set;
public class MainActivity extends Activity {
Button b1,b2,b3,b4;
private BluetoothAdapter BA;
private SetpairedDevices;
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1 = (Button) findViewById(R.id.button);
b2=(Button)findViewById(R.id.button2);
b3=(Button)findViewById(R.id.button3);
b4=(Button)findViewById(R.id.button4);
BA = BluetoothAdapter.getDefaultAdapter();
lv = (ListView)findViewById(R.id.listView);
}
public void on(View v){
if (!BA.isEnabled()) {
Intent turnOn = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(turnOn, 0);
Toast.makeText(getApplicationContext(), "Turned on",Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "Already on", Toast.LENGTH_LONG).show();
}
}
public void off(View v){
BA.disable();
Toast.makeText(getApplicationContext(), "Turned off" ,Toast.LENGTH_LONG).show();
}
public void visible(View v){
Intent getVisible = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
startActivityForResult(getVisible, 0);
}
public void list(View v){
pairedDevices = BA.getBondedDevices();
ArrayList list = new ArrayList();
for(BluetoothDevice bt : pairedDevices) list.add(bt.getName());
Toast.makeText(getApplicationContext(), "Showing Paired Devices",Toast.LENGTH_SHORT).show();
final ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1, list);
lv.setAdapter(adapter);
}
}
这是activity_main.xml的内容
abc表示关于tutorialspoint的徽标。
这是Strings.xml的内容
My Application
这是AndroidManifest.xml的内容
让我们尝试运行您的应用程序。我假设您已将实际的Android Mobile设备与计算机连接。要从Android Studio运行该应用,请打开您项目的活动文件之一,然后点击运行工具栏上的图标。如果您的蓝牙无法打开,则会询问您的许可以启用蓝牙。
现在,只需选择“获取可见性”按钮即可打开可见性。将出现以下屏幕,询问您的权限以开启发现功能120秒钟。
现在,只需选择“列出设备”选项。它将在列表视图中列出已配对的设备。就我而言,我只有一个已配对的设备。如下所示。
现在,只需选择“关闭”按钮即可关闭蓝牙。当您关闭蓝牙时,将显示以下消息,指示成功关闭了蓝牙。