`
chengfengyang
  • 浏览: 21502 次
社区版块
存档分类
最新评论

android之蓝牙操作(一)

阅读更多
与蓝牙相关的API

1、BluetoothAdapter
该类的对象代表了本地的蓝牙适配器
2、BluetoothDevice
该类的对象代表了远程的蓝牙适配器

扫描已经配对的蓝牙设备步骤:

1、获得BluetoothAdapter对象
2、判断当前的设备中是否有蓝牙设备
3、判断当前设备中的蓝牙设备是否已经打开
4、得到所以已经配对的蓝牙设备对象

在AndroidManifedt.xml中声明蓝牙权限
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="test.bluetooth01"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".TestBluetoothActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
    
    <uses-permission android:name="android.permission.BLUETOOTH"/>
</manifest>


在布局文件中添加一个按钮
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
    <Button 
    android:id="@+id/button"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="扫描蓝牙设备"
    />
</LinearLayout>




MainActivity.java

import java.util.Iterator;
import java.util.Set;

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.view.View.OnClickListener;
import android.widget.Button;

public class TestBluetoothActivity extends Activity {
    /** Called when the activity is first created. */
	private Button button = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        button = (Button)findViewById(R.id.button);
        button.setOnClickListener(new ButtonListener());
    }
    private class ButtonListener implements OnClickListener
    {

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			//得到BluetoothAdapter对象
			BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
			//判断BluetoothAdapter对象是否为空,若为空,则本机上无蓝牙设备
			if (bluetoothAdapter != null) {
				System.out.println("本机上拥有蓝牙设备");
				if (!bluetoothAdapter.enable()) {
					//创建一个Intent对象,该对象用来启动另外一个Activity,提示用户启动蓝牙设备
					Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
					startActivity(intent);
				}
				//得到所有已经匹配的蓝牙适配器对象
				Set<BluetoothDevice> device = bluetoothAdapter.getBondedDevices();
				if (device.size()>0) {
					for (Iterator iterator = device.iterator(); iterator
							.hasNext();) {
						BluetoothDevice bluetoothDevice = (BluetoothDevice) iterator
								.next();
						System.out.println(bluetoothDevice.getAddress());
					}
				}
				
			}
			else 
			{
				System.out.println("本机上无蓝牙设备");
			}
		}
    	
    }
}

分享到:
评论

相关推荐

    android studio 蓝牙开发demo

    总的来说,"android studio 蓝牙开发demo"涵盖了Android Bluetooth LE开发的基本流程,从设备搜索、连接、服务发现到数据交换,是学习和实践Android蓝牙编程的好素材。通过学习这个示例,开发者可以构建自己的蓝牙...

    Android 打开蓝牙耳机录音

    在Android平台上,实现“蓝牙耳机录音”涉及到一系列的系统服务、API接口以及音频处理技术。以下将详细解析这个过程,并提供关键知识点。 首先,我们来理解“Sco”(Short Range Communication)模式。Sco是蓝牙...

    ANDROID9.0 蓝牙主从切换方案.rar

    此外,对蓝牙操作进行优化,减少不必要的资源消耗,也是提升用户体验的重要环节。 通过以上知识点的介绍,我们可以理解到在Android 9.0中实现蓝牙主从模式一键切换涉及到的技术和挑战。这个方案为开发者提供了更大...

    android连接蓝牙实例

    在整个蓝牙操作过程中,可能会遇到各种异常,如设备未开启、连接失败、数据传输错误等。因此,良好的异常处理机制是必不可少的,确保在出现问题时能够及时反馈并尝试恢复。 9. **权限管理**: Android应用使用...

    android4.0蓝牙收发数据demo

    本教程将详细解析如何创建一个简单的Android应用,实现蓝牙在Android 4.0及更高版本中的数据收发功能,并允许用户自定义UUID。 1. **蓝牙API介绍** Android 4.0引入了`BluetoothAdapter`类,它是Android系统中与...

    android BlueToothDemo (蓝牙搜索,配对,连接,传输)详细讲解见博客

    在`BlueToothDemo`项目中,`BooleanTeethDemo`很可能是一个演示程序,用于展示蓝牙操作的基本流程。让我们一步步解析这个过程: 1. **蓝牙搜索**: 蓝牙搜索通常通过BluetoothAdapter的`startDiscovery()`方法进行...

    Android利用蓝牙广播数据

    在Android平台上,蓝牙技术是一种广泛使用的短距离无线通信方式,特别是在设备间的数据交换和通信方面。本文将深入探讨如何在Android设备上利用蓝牙广播数据,以及这种技术在Android与可穿戴设备之间的通信应用。 ...

    android监听蓝牙设备的连接状态

    在Android平台上,监听蓝牙设备的连接状态是一项关键功能,它涉及到设备间的无线通信与数据交换。本文将深入探讨如何利用Android系统广播机制来实现这一目标。 首先,我们要明白蓝牙连接状态主要包括三种:未连接、...

    Android蓝牙连接设备demo

    "Android蓝牙连接设备demo"是一个示例项目,它演示了如何使用Android SDK来实现BLE 4.0及更高版本的蓝牙设备连接和通信功能。下面我们将深入探讨这个demo涉及的关键知识点。 1. **BLE 4.0与Android支持**:BLE 4.0...

    android通用蓝牙调试助手

    总结,"Android通用蓝牙调试助手"作为一款强大的BLE调试工具,通过其便捷的操作和全面的功能,为Android开发者提供了有力的支持。掌握并熟练运用这款工具,无疑会提升开发者的蓝牙应用能力,加速项目的进展。

    android通过蓝牙进行通讯

    在Android平台上,蓝牙通信是一种常见的无线数据传输方式,尤其适用于设备间的短距离通信。这篇博客主要探讨了如何在...通过这些步骤,开发者可以构建一个基本的Android蓝牙通信应用,实现设备间的无线数据交换。

    Android蓝牙开发客户端代码

    首先,我们需要理解蓝牙技术的基本概念,然后我们将详细讨论Android蓝牙开发客户端的实现步骤。 蓝牙是一种短距离无线通信技术,允许电子设备之间进行数据交换。在Android中,蓝牙功能主要通过`BluetoothAdapter`、...

    android 蓝牙SPP传输demo

    本示例是一个Android蓝牙SPP传输的Demo,它展示了如何在Android应用中实现与蓝牙设备的数据交换。以下是关于这个主题的详细知识: 1. **蓝牙SPP介绍**: - SPP是蓝牙核心规格的一部分,模仿了串口通信,使得不同...

    android蓝牙聊天源代码

    "android蓝牙聊天源代码"项目提供了一个很好的实例,帮助开发者了解如何在Android应用程序中实现蓝牙聊天功能。以下将详细介绍这个项目的相关知识点: 1. **Android Bluetooth API**: Android提供了`...

    Kotlin+Android 蓝牙基本操作

    采用kotlin 对蓝牙进行打开和关闭,以及搜索蓝牙设备,与其他蓝牙设备配对,并将所有配对的信息进行显示。相关说明看 https://mp.csdn.net/mp_blog/creation/editor/119547298

    基于android的蓝牙功能实现

    在Android平台上实现蓝牙功能是一项常见的任务,特别是在开发物联网或设备通信的...提供的源码"BluetoothChat"是一个很好的实践案例,通过分析和学习,开发者能够深入理解Android蓝牙编程,并将其应用到自己的项目中。

    Android Studio 最新蓝牙服务端源码 蓝牙通信代码BluetoothService.rar

    在Android平台上,开发蓝牙通信应用是一项常见的任务,尤其在物联网(IoT)设备连接和数据交换的场景下。本文将详细解析"Android Studio 最新蓝牙服务端源码 蓝牙通信代码BluetoothService.rar"中涉及的关键知识点,...

    Android蓝牙广播通信

    Android提供了一个名为BluetoothAdapter的类,它是Android蓝牙功能的主要入口点。通过这个类,我们可以检查蓝牙是否开启,扫描附近的蓝牙设备,并建立连接。当我们要监听蓝牙设备的状态变化时,就需要用到广播通信。...

    AndroidStudio蓝牙接收数据绘图

    - 蓝牙操作可能抛出各种异常,如`IOException`、`NullPointerException`等,需要妥善处理,提供良好的用户体验。 9. **性能优化**: - 使用`Handler`或`HandlerThread`进行异步操作,避免阻塞主线程。 - 数据...

    基于android的蓝牙聊天室

    在Android平台上构建一个基于蓝牙的聊天室是一项技术挑战性较高的任务,它涉及到多个关键知识点,包括Android应用开发、蓝牙通信协议、多线程处理以及数据序列化等。下面将详细阐述这些关键点。 首先,Android应用...

Global site tag (gtag.js) - Google Analytics