android6.23蓝牙操作
2016-06-23 21:43
288 查看
扫描已经配对的蓝牙设备
过程
蓝牙设备可见性
判断当前设备是否有蓝牙
判断当前设备蓝牙是否打开
得到所有已经配对的蓝牙设备对象
扫描周围可用的蓝牙的设备
设置相关设备可见性需要获取bluetooth.admin权限
过程
蓝牙设备可见性
扫描已经配对的蓝牙设备
首先声明蓝牙权限过程
获得BluetoothAdapter对象判断当前设备是否有蓝牙
判断当前设备蓝牙是否打开
得到所有已经配对的蓝牙设备对象
public class MainActivity extends AppCompatActivity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //得到蓝牙适配器对象 BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); //判断是适配器是否为null,如果为空则没有蓝牙设备 if(adapter != null) { Log.d("bluetooth", "当前设备拥有蓝牙功能"); //判断当前蓝牙设备是否可用,如果可用的话打开 if(!adapter.isEnabled()) { //该对象用于启动一个activity提示用户开启蓝牙设备 Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivity(intent); } //得到所有已经配对的蓝牙设备 Set<BluetoothDevice> devices = adapter.getBondedDevices(); if (devices.size() > 0) { //set和list都有iterator方法返回一个iterator对象,next()方法返回一个object对象 for (Iterator iterator = devices.iterator(); iterator.hasNext();) { BluetoothDevice bluetoothDevice = (BluetoothDevice) iterator.next(); Log.d("bluetooth", bluetoothDevice.getName()); } } }else { Log.d("bluetooth", "当前设备没有蓝牙功能"); } } }); } }
蓝牙设备可见性
修改可见性扫描周围可用的蓝牙的设备
设置相关设备可见性需要获取bluetooth.admin权限
public class MainActivity extends AppCompatActivity { private Button button; private Button button01; private BluetoothAdapter bluetoothAdapter; private BluetoothReceiver receiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //创建一个意图过滤对象 IntentFilter intentFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND); //创建一个接收器对象 receiver = new BluetoothReceiver(); //注册 registerReceiver(receiver, intentFilter); bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); button01 = (Button) findViewById(R.id.button_01); button = (Button) findViewById(R.id.button); //设置蓝牙设备可见性 button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //创建一个意图,设置action为蓝牙不可见 Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); //讲一个键值对存放到intent中,设置不可见时间,默认为120s,我的手机上可以设置为500s没有被300s //覆盖 discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 500); startActivity(discoverableIntent); } }); button01.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //开始扫描蓝牙设备 bluetoothAdapter.startDiscovery(); } }); } class BluetoothReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //可以从intent中取除远程的蓝牙设备对象 BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); Log.d("Bluetooth", device.getAddress()); } } }
相关文章推荐
- Android中Log的简单封装
- android 线程池两篇文章 。后期添加自己见解
- Android系统自带样式(@android:style/)
- Android design support libarary
- Android项目之仿360手机助手项目
- Android的POST方法详解
- Android 手势滑动
- Android 解析后台返回为Json数据的简单例子
- OSG for Android新手教程系列(三)——HelloWorld,第一个示例
- Android Studio导入Project、Module的正确方法
- 新建Android 应用工程的问题
- android-----关于事件分发机制中几点困惑测试
- Android SDK下载速度慢的解决方法(简单使用代理)
- Android Studio项目目录结构介绍
- Android命令行创建并运行 AVD模拟器
- 讯飞语音开发之语音理解
- android自定义颜色进度条ColorSeekBar
- Android杂谈(6)Windows蓝屏可能出现工程莫名全报错
- Android基于Zxing实现扫描和生成二维码
- android序列化之Serializable,Parcelable