android 连接蓝牙耳机 的判断代码,如何验证Android上是否连接了蓝牙耳机?
将其移至答案,以便进行进一步的评论。效果很好!
public class BluetoothReceiver extends BroadcastReceiver {
private AudioManager localAudioManager;
private static final int STATE_DISCONNECTED = 0x00000000;
private static final String EXTRA_STATE = "android.bluetooth.headset.extra.STATE";
private static final String TAG = "BluetoothReceiver";
private static final String ACTION_BT_HEADSET_STATE_CHANGED = "android.bluetooth.headset.action.STATE_CHANGED";
private static final String ACTION_BT_HEADSET_FORCE_ON = "android.bluetooth.headset.action.FORCE_ON";
private static final String ACTION_BT_HEADSET_FORCE_OFF = "android.bluetooth.headset.action.FORCE_OFF";
@Override
public void onReceive(final Context context, final Intent intent) {
Log.i(TAG,"onReceive - BluetoothBroadcast");
localAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
final String action = intent.getAction();
if (action.equals(ACTION_BT_HEADSET_STATE_CHANGED)) {
final int extraData = intent.getIntExtra(EXTRA_STATE, STATE_DISCONNECTED);
if (extraData == STATE_DISCONNECTED) {
localAudioManager.setBluetoothScoOn(false);
localAudioManager.stopBluetoothSco();
localAudioManager.setMode(AudioManager.MODE_NORMAL);
Log.i(TAG, "Bluetooth Headset Off " + localAudioManager.getMode());
Log.i(TAG, "A2DP: " + localAudioManager.isBluetoothA2dpOn() + ". SCO: " + localAudioManager.isBluetoothScoAvailableOffCall());
} else {
localAudioManager.setMode(0);
localAudioManager.setBluetoothScoOn(true);
localAudioManager.startBluetoothSco();
localAudioManager.setMode(AudioManager.MODE_IN_CALL);
Log.i(TAG, "Bluetooth Headset On " + localAudioManager.getMode());
Log.i(TAG, "A2DP: " + localAudioManager.isBluetoothA2dpOn() + ". SCO: " + localAudioManager.isBluetoothScoAvailableOffCall());
}
}
if (action.equals(ACTION_BT_HEADSET_FORCE_ON)) {
localAudioManager.setMode(0);
localAudioManager.setBluetoothScoOn(true);
localAudioManager.startBluetoothSco();
localAudioManager.setMode(AudioManager.MODE_IN_CALL);
Log.i(TAG, "Bluetooth Headset On " + localAudioManager.getMode());
Log.i(TAG, "A2DP: " + localAudioManager.isBluetoothA2dpOn() + ". SCO: " + localAudioManager.isBluetoothScoAvailableOffCall());
}
if (action.equals(ACTION_BT_HEADSET_FORCE_OFF)) {
localAudioManager.setBluetoothScoOn(false);
localAudioManager.stopBluetoothSco();
localAudioManager.setMode(AudioManager.MODE_NORMAL);
Log.i(TAG, "Bluetooth Headset Off " + localAudioManager.getMode());
Log.i(TAG, "A2DP: " + localAudioManager.isBluetoothA2dpOn() + ". SCO: " + localAudioManager.isBluetoothScoAvailableOffCall());
}
}
}
android 连接蓝牙耳机 的判断代码,如何验证Android上是否连接了蓝牙耳机?相关推荐
- arduino(19 ):使用ESP32连接 PS3 蓝牙手柄,需要在windows 上先连接成功,然后在修改mac地址,才可以连接成功,但是目前正在测试中,需要在windows上配对成功。
目录 前言 1,关于 Arduino 2,使用 Arduino 3,arduino上连接 4,Linux 5,总结 前言 相关arduino 全部分类: https://blog.csdn.net/f ...
- C#连接sqlserver windows 和 sqlserver 身份验证的两种连接字符串
//sql server 身份验证 连接字符串 private string ConnstrSqlServer = "server=服务器名称;uid=登录名称;pwd=登录密码;datab ...
- 全志 android 编译,全志A20启动代码流程分析 ——Android
现在的CPU都固化了内部 ROM,内部 ROM中有一般都有一段程序,一般有如下几个功能: 1,初始化,部分外设,如USB,SDCARD 2,初始化DDR(内存)和NandFlash 3,加载boot( ...
- 全志android 编译,全志A20启动代码流程分析 ——Android
现在的CPU都固化了内部 ROM,内部 ROM中有一般都有一段程序,一般有如下几个功能: 1,初始化,部分外设,如USB,SDCARD 2,初始化DDR(内存)和NandFlash 3,加载boot( ...
- Android SoftAp SoftAp打开/关闭代码流程(基于android 7.0)
在Android手机中,SoftAp也是一个较为常用的功能.对于framework开发者来说,要开发.维护SoftAp,了解framework中热点开关的具体流程是非常有必要的.下面就对这部分内容做一 ...
- android添加图片控件代码,如何在android studio中添加图标图像按钮
我想设计这种类型的应用程序的布局(如图所示).在此布局中,当我们单击圆形图标时,它将移至下一页.我想知道它是如何完成的. 解决方法: 在抽屉文件夹中创建circle_background.xml并将此 ...
- mac 连接linux sh,ssh工具 – windows和mac 上ssh连接linux 服务器工具推荐 – The Hu Post...
Views: 1,051 内容概要: ssh工具 xshell finalshell关于生产力的更多内容, 可以看看我的专栏 一些效率工具可以可以看看我整理的常用工具推荐. ssh工具 在工作中经常回 ...
- 计算机网络连接显示678是什么意思,宽带连接错误678,教您宽带连接出现错误提示代码678怎么解决...
对电脑网络有资深了解的用户就知道,网络的错误代码678是宽带的故障代码之一.其含义是远程计算机无响应.而在网上罗列了一堆的可能性,其中涉及的一些高深的专业知识与判断,很多的用户都表示看得是云里雾里不知 ...
- android app 的后台代码,包括后台的Android美食APP项目开源代码
项目简介 小食光定位为一款集美食,社交,LBS服务于一体的美食推荐APP.为你发现周边美食的同时提供一个吃货分享的平台. APP截图 功能模块 美食推荐 :提供基础的美食信息查询: 商家推荐 : 基于 ...
- 远程连接mysql 8.0取消ssl验证
Ubuntu 或者windows下安装的mysql服务 安装的是mysql8.0的版本,远程连接发现需要做ssl身份验证,本机连接不需要,取消掉其ssl身份验证需要调整配置 在ubuntu 下的 /e ...
最新文章
- 【Excel】Excel根据单元格背景色求和
- mysql proxies_priv_Mysql5.7.18利用MySQLproxies_priv实现类似用户组管理实例分享
- 去掉IntelliJ IDEA 中 mybatis 对应的 xml 文件警告
- XML数据岛(XML Data Island)(只适用于ie)
- win8 软件字体乱码
- win下anaconda装python2.7和3.5以及jupyter共存 (本篇实践通过)
- 批处理脚本:判断进程是否存在
- maven3实战之设置HTTP代理
- 3.Linux/Unix 系统编程手册(上) -- 系统编程概念
- 【ArcGIS操作】3 数据制图篇
- 腾讯x5内核(TBS)简单集成封装
- 陈丹琦新作:关系抽取新SOTA,用pipeline方式挫败joint模型
- 医学生建议计算机系学生植发,00后都开始“秃”了?皮肤科专家:不想成为“地中海”,这件事情要记牢...
- Attention Mechanisms in Computer Vision: A Survey(四)
- CSS 伪类 after 右侧线
- Ubuntu暂时无法解析域名“cn.archive.ubuntu.com”
- JavaScript课堂笔记
- 一张图带你看完图论第一章(包含定义、定理、公式、推导证明和例题)
- 信源编码技术-作业1-清浊音分析
- 教你亲手制作一个虚拟数字人,超全步骤详解
热门文章
- 徕卡 sl android app,相机入魔 徕卡SL DPReview测评结论
- 数字孪生城市优秀案例汇编(2021年) 附下载
- 面试题七 C/C++ 骑士营救公主 骑士只能向右或者向下移动,遇到陷阱就死了,求骑士营救公主的所有路线-程序员面试题
- linux中的ul命令,Linux ngrep 命令用法详解-Linux命令大全(手册)
- TOM企邮、腾讯企邮、网易企邮、263企邮,四大企业邮箱实测:谁是最实用的企业邮箱产品?
- vue实现农历日期选择器
- 向量空间模型算法(Vector Space Model)
- 搜索引擎原理第二阶段之预处理
- Android程序配置热点IP,Android 10版本获取已连接本机热点的ip
- SQL Server Management Studio(SSMS)对象资源管理器的使用以及查询分析器的使用