`
Tony_Lee-S
  • 浏览: 82837 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android开发之蓝牙(Bluetooth)操作(二)--修改本机蓝牙设备的可见性,并扫描周围可用的蓝牙设备(转)

阅读更多
一. 修改本机蓝牙设备的可见性

二. 扫描周围可用的蓝牙设备
Eg:
一.  清单文件AdroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.se7en"
      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=".MainActivity"
                  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"/>
	
	<!-若需要管理蓝牙设备,如修改可见性,则需以下的权限->
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
</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/discoverButton"
    	android:layout_width="fill_parent"
    	android:layout_height="wrap_content"
    	android:text="设置可见性"/>
    <Button 
    	android:id="@+id/scanButton"
    	android:layout_width="fill_parent"
    	android:layout_height="wrap_content"
    	android:text="开始扫描"/>
</LinearLayout>

三. MainActivity:
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
	private Button discoverButton = null;
	private Button scanButton = null;
	private BluetoothAdapter adapter = null;
	private BluetoothReceiver bluetoothReceiver = null;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        adapter = BluetoothAdapter.getDefaultAdapter();
        
        discoverButton = (Button)findViewById(R.id.discoverButton);
        scanButton = (Button)findViewById(R.id.scanButton);
        //修改蓝牙设备的可见性
        discoverButton.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View view) {
			Intent discoverIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);

//设置蓝牙可见性,500表示可见时间(单位:秒),当值大于300时默认为300
discoverIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,500);
startActivity(discoverIntent);
			}
        });
        
        scanButton.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v) {
		//开始扫描周围蓝牙设备,该方法是异步调用并以广播的机制返回,所以需要创建一个BroadcastReceiver来获取信息
				adapter.startDiscovery();
			}
        });
        
        //设定广播接收的filter
        IntentFilter intentFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
        //创建蓝牙广播信息的receiver
        bluetoothReceiver = new BluetoothReceiver ();
        //注册广播接收器
        registerReceiver(bluetoothReceiver,intentFilter);
        	
    }
    
    private class BluetoothReceiver extends BroadcastReceiver{
		@Override
		public void onReceive(Context context, Intent intent) {
			//获得扫描到的远程蓝牙设备
			BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
			System.out.println(device.getAddress());
		}
    	
    }
}

转自:
http://blog.csdn.net/t12x3456/article/details/7865690
分享到:
评论

相关推荐

    Android蓝牙开发工具 Bluetooth-LE-Library---Android-master

    在Android平台上进行蓝牙低功耗(Bluetooth Low Energy, BLE)开发时,`Bluetooth-LE-Library---Android-master` 是一个非常重要的工具库。这个库专为Android应用开发者设计,简化了与BLE设备交互的复杂性,使开发者...

    基于Android的BlueTooth开发手机蓝牙和蓝牙模块通讯

    在Android平台上进行蓝牙开发,主要是利用Android提供的Bluetooth API来实现设备间的无线通信。这个过程涉及到多个关键步骤,包括蓝牙的开启、搜索、配对、连接以及数据传输等。以下是关于"基于Android的BlueTooth...

    HBuilder实现蓝牙通讯 - 亲测可用html5-bluetooth-demo-HBuilderX

    标题中的“HBuilder实现蓝牙通讯 - 亲测可用html5-bluetooth-demo-HBuilderX”指出,这个项目是关于使用HBuilderX开发工具实现基于HTML5的蓝牙通信功能,并且已经通过实际测试验证其可行性。HBuilderX是一款强大的...

    蓝牙Demo(设置蓝牙可见性 扫描周围蓝牙)

    在本示例"蓝牙Demo(设置蓝牙可见性 扫描周围蓝牙)"中,我们将探讨如何通过编程实现蓝牙设备的可见性设置以及扫描周围可用的蓝牙设备。 首先,蓝牙设备的可见性是指该设备是否允许其他蓝牙设备发现它。在Android...

    安卓wifi蓝牙相关-android蓝牙hid协议开发实现手机连接蓝牙鼠标键盘扫描枪.rar

    在Android平台上,蓝牙HID(Human Interface Device)协议的开发是一项关键的技术,它允许设备如鼠标、键盘或扫描枪等通过蓝牙与手机进行交互。本文将深入探讨Android蓝牙HID协议开发的相关知识点,并提供实现手机...

    android bluetooth demo 蓝牙样例

    在示例程序中,可能还会包括蓝牙设备的扫描、配对、取消配对等功能的实现,这些都是Android蓝牙开发的基本操作。同时,开发者需要注意蓝牙权限(BLUETOOTH_ADMIN和BLUETOOTH)的申请,以及在Android 6.0及以上版本中...

    Android蓝牙扫描

    在Android系统中,BluetoothManager类提供了对蓝牙设备的管理,而BluetoothAdapter则是进行蓝牙操作的主要接口。通过获取系统的BluetoothAdapter实例,我们可以开启或关闭蓝牙,搜索设备,连接设备等。 ### 1. 注册...

    android 8.1 蓝牙开发 静默开启蓝牙 将蓝牙暴露给其他蓝牙设备 扫描蓝牙设备 静默配对 建联相互通信

    在Android 8.1系统中进行蓝牙开发,你需要掌握一系列的关键技术点,这些技术涵盖了蓝牙的静默开启、蓝牙设备的曝光、扫描蓝牙设备、静默配对以及建立连接进行相互通信。以下是对这些知识点的详细解释: 1. **静默...

    Android之蓝牙驱动开发总结

    蓝牙协议栈负责蓝牙设备之间的通信,蓝牙驱动负责蓝牙设备的控制和管理,蓝牙应用程序负责蓝牙应用程序的开发和实现。 Android Bluetooth 代码层次结构 Android 蓝牙代码层次结构包括蓝牙协议栈、蓝牙驱动、蓝牙...

    Android蓝牙设备的配对,连接,搜索demo

    在Android平台上,蓝牙设备的配对、连接和搜索是移动应用开发中常见且重要的功能,尤其是在物联网(IoT)和设备交互的场景下。本文将深入探讨如何在Android系统中实现这些操作,参考自博客文章《Android蓝牙设备的配对...

    安卓wifi蓝牙相关-里面是关于蓝牙的一些基本操作包括检测是否存在是否可用是否可见打开蓝牙关闭蓝牙设置蓝牙可.rar

    这个压缩包文件包含了关于蓝牙的一些基本操作,这对于开发Android应用时处理蓝牙功能是非常有用的。以下是一些核心知识点的详细说明: 1. **蓝牙检测**:在Android中,开发者可以使用`BluetoothAdapter`类来检测...

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

    蓝牙搜索通常通过BluetoothAdapter的`startDiscovery()`方法进行,这会启动一个扫描过程来查找附近的蓝牙设备。需要注意的是,这个操作需要用户权限,且可能受到系统策略的限制,例如只能在短时间内执行一次。 2. ...

    android studio 蓝牙开发demo

    本示例"android studio 蓝牙开发demo"专注于使用Android Studio进行蓝牙低功耗(Bluetooth Low Energy,BLE)开发,这是一种广泛应用于物联网(IoT)设备的技术。通过BlueToothBLE-master这个项目,我们可以深入学习...

    Java-Bluetooth-API.rar_bluetooth-API_java bluetooth_java 蓝牙api_j

    - **LocalDevice**:代表本地蓝牙设备,提供了获取设备信息、设置设备可见性等方法。 - **RemoteDevice**:表示远程蓝牙设备,包含了设备地址、名称等信息。 - **DiscoveryAgent**:负责设备和服务的发现操作,如...

    Android之蓝牙驱动开发总结 - 全网唯一

    二 Android Bluetooth架构 2.1 Bluetooth架构图 2.2 Bluetooth 代码层次结构 三 Bluetooth 协议栈分析 3.1 蓝牙协议栈 3.2 Android 与蓝牙协议栈的Bluetooth 之HCI层分析 .4.1HCI层与基带的通信方 4.2包的分析及研究...

    蓝牙通信 Android开发实现手机间通过蓝牙传输文件

    在应用层,开发者通过Android提供的API来实现蓝牙设备的扫描、配对和数据传输。 在这个实验小作业中,主要涉及的步骤包括: 1. 扫描附近蓝牙设备:使用BluetoothAdapter的startDiscovery()方法发起蓝牙设备扫描。 ...

    杰理蓝牙SDK Android-JL-Bluetooth-main(音箱耳机类产品)

    支持RCSP协议的固件,支持以下系列芯片 | AC693X, AC697X, AC695X等等 |最后列新... |- 杰理OTA外接库(Android)开发文档 --- 在线开发文档 |- 杰理之家SDK(Android)开发文档 --- 在线开发文档 |- libs -- 核心库&lt;br

    C#扫描蓝牙设备demo

    2. **蓝牙设备发现**:在C#中,扫描蓝牙设备的核心在于遍历并识别周围的蓝牙设备。这通常通过调用DLL中的`InTheHand.Net.Bluetooth.BluetoothClient.DiscoverDevices()`方法来实现。此方法会返回一个设备列表,包含...

    android bluetooth框架知识整理

    Java层的`android.bluetooth`包提供了丰富的类和接口,供开发者构建蓝牙应用程序,如`BluetoothAdapter`用于管理蓝牙状态,`BluetoothDevice`代表蓝牙设备,`BluetoothGatt`用于处理GATT(通用属性配置文件)服务。...

    Android 蓝牙开发,实现了,蓝牙搜索,蓝牙连接,蓝牙发送消息接收消息

    - **扫描设备**:通过调用BluetoothAdapter的`startDiscovery()`方法,应用可以开始搜索附近的蓝牙设备。搜索结果会通过BroadcastReceiver监听ACTION_DISCOVERY_FINISHED和ACTION_FOUND广播事件来获取。 - **过滤...

Global site tag (gtag.js) - Google Analytics