android6.23蓝牙操作
来源:互联网 发布:无人机航线保持算法 编辑:程序博客网 时间:2024/06/05 21:52
- 扫描已经配对的蓝牙设备
- 过程
- 蓝牙设备可见性
扫描已经配对的蓝牙设备
首先声明蓝牙权限
过程
- 获得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()); } }}
0 0
- android6.23蓝牙操作
- Android6.0-蓝牙权限问题
- Android6.0蓝牙探索旅程
- Android6.0蓝牙搜索设备
- android6.0 ble scan android6.0蓝牙扫描
- Android6.0源码分析之蓝牙
- android6.0蓝牙配对加入提示音
- Android6.0 蓝牙搜索不到设备原因
- android6.0获取蓝牙mac地址
- Android6.0蓝牙协议之OPP
- Android6.0蓝牙搜索出错问题
- android6.0以上版本蓝牙4.0开发
- Android6.0的蓝牙权限问题
- Android6.0源码分析之蓝牙
- Android6.0权限操作
- Android6.0蓝牙权限申请及开启蓝牙
- android6.0手机蓝牙与ble蓝牙模块通信
- android6.0 蓝牙搜索不到设备 BluetoothAdapter.getDefaultAdapter().startDiscovery()不起作用
- 数据结构实验之链表七:单链表中重复元素的删除
- java序列化一定要应该注意的6个事项!
- python selenium 实现Firefox自定义加载profile
- 获取MySql数据库自动生成的主键值
- 收藏的网址
- android6.23蓝牙操作
- The entity type FooterLogo is not part of the model for the current context.zai
- 为RecyclerView打造通用Adapter 让RecyclerView更加好用
- GridControl设置部分列可编辑
- Android studio使用
- 数据结构实验之链表九:双向链表
- sessionstorage,localstorage和cookie之间的区别
- viewpager+fragment 防止fragment重新加载
- 计算机图形学(三)_图元的属性_4_线的属性_2_线宽