android hdmi 监听,对于HDMI设备连接状态的监听
对与最近主要做的是电视机盒子端的开发,其中涉及到设备的状态监听比较繁琐,所以对HDMI的连接状态的监听方法做个记录,方便后续查看。
主要通过两种方式:
(1)比较常用的广播监听
注册一个动态广播来获取HDMI接口的插拔,它的Action的name为 “android.intent.action.HDMI_PLUGGED”,具体的代码如下:
private static
BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context
context, Intent receivedIt) {
String action = receivedIt.getAction();
if
(action.equals("android.intent.action.HDMI_PLUGGED")) {
boolean state =
receivedIt.getBooleanExtra("state", false);
if (state) {
isHdmiConnect = true;
} else {
isHdmiConnect = false;
}
}
}
};
这样可以监听HDMI接口的插拔,但存在一个问题当第一次进入程序的时候是不知道HDMI的状态的需要配合第二种方式。
(2)读取系统文件中的内容
直接读取系统文件中的数据,路径为"/sys/devices/virtual/switch/hdmi/state",其中存在一些设备的存储路径不同需要做出修改具体代码如下:
private static
boolean isHdmiSwitchSet() {
// The file
'/sys/devices/virtual/switch/hdmi/state' holds an int -- if it's 1 then an HDMI
device is connected.
// An alternative file to check is
'/sys/class/switch/hdmi/state' which exists instead on certain devices.
File switchFile = new
File("/sys/devices/virtual/switch/hdmi/state");
if (!switchFile.exists()) {
switchFile = new
File("/sys/class/switch/hdmi/state");
}
try {
Scanner switchFileScanner = new
Scanner(switchFile);
int switchValue =
switchFileScanner.nextInt();
switchFileScanner.close();
return switchValue > 0;
} catch (Exception e) {
return false;
}
}
这种方法可以直接获取状态,但如果多次频繁查询可能会出现异常抛出,建议两种方法配合使用最为稳定。
android hdmi 监听,对于HDMI设备连接状态的监听相关推荐
- 安卓网络连接全解:包括网络连接状态的监听、网络数据使用状态的监听、获取当前网络连接情况、启动wifi、获取当前连接wifi的网络情况、扫描wifi热点
全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓网络连接情况全解:包括网络连接状态的监听.网络数据使用状态的监听.获取当前网络连接情况.启动wifi.获取当前连接wifi的网络情况.扫描wifi ...
- Android官方文章翻译之管理设备苏醒状态(Managing Device Awake State)(二)
这是Managing Device Awake State的下半篇,上半篇请看:Android官方文章翻译之管理设备苏醒状态(Managing Device Awake State)(一) 在了解接下 ...
- Android之判断USB传输模式与USB连接状态
1.监听UsbManager.ACTION_USB_STATE public class UsbManager {private static final String TAG = "Usb ...
- linux探测i2c设备连接状态,手把手教你写Linux I2C设备驱动
Linux I2C驱动是嵌入式Linux驱动开发人员经常需要编写的一种驱动,因为凡是系统中使用到的I2C设备,几乎都需要编写相应的I2C驱动去配置和控制它,例如 RTC实时时钟芯片.音视频采集芯片.音 ...
- android 连接蓝牙键盘事件监听
记一次通过蓝牙键盘触发事件,在对应的Activity复写onKeyUp每次按键或长按保证只触发一次 @Overridepublic boolean onKeyUp(int keyCode, KeyEv ...
- Android蓝牙开发教程(二)——连接蓝牙设备
在上一篇中已经介绍如何搜索附近可连接的蓝牙设备,如果你还没阅读过,建议先看看上一篇文章Android蓝牙开发教程(一)--搜索蓝牙设备 获取到设备后就可以开始处理蓝牙设备之间的连接. 在上一篇教程中我 ...
- 爱思助手刷机中断,无法退出恢复模式的解决方案(越狱出现卡在“等待苹果设备连接到开机模式”提示)
问题 博主高中时用的一款iPhone4到现在依然没有寿终正寝,开机键坏了,随着ios系统的不断更新,很多软件也无法下载,我时长在午夜听到小机机的呐喊:我觉得我还可以抢救一下!于是拆了机,把关机键卸了下 ...
- android 10.0 监听Soft Ap热点连接与断开
1.概述 在10.0的系统产品开发中,在定制化银行设备时,需要设备开机后打开热点,然后监听顾客连接设备和断开设备 那么SoftApManager.java 就主要负责热点连接的管理,就需要分析它的相关 ...
- Android 监听网络连接状态,判断网络连接方式,9.0网络连接,获取已连接WiFi名称SSID和MAC
获取已连接的WiFi名称 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> ...
最新文章
- 安徽计算机中专学校有哪些,安徽2021年中专学校里面都有什么专业
- Dell服务器常用管理命令总结
- 【Bit-Z月报】11月送出182.4万美元活动奖励,真是豪气
- 「日常训练」Alternative Thinking(Codeforces Round #334 Div.2 C)
- SecureCRT报错ImportError: No module named itertools(解决方案无法复现)
- 使用Spring Security保护REST服务
- leetcode:Excel Sheet Column Number
- 中国大学MOOC“Python程序设计基础”第6次开课时间
- linux释放内存后设备起不来,Linux-Memory小记
- 第一次点击button, view视图出现;第二次点击button,view视图消失
- 大数据技术原理与应用(第一章,大数据概述)
- vue结合vue-amap调用高德地图行政区划分并添加标记点
- 2022最新PHP微信/QQ域名防封直连系统源码
- 5个最好用的GIF制作软件
- zookeeper指北
- 最强内存稳定性测试软件,内存稳定性测试软件TM5
- 计算机运行内存和显卡内存不足,系统提示显卡内存不足怎么办?-解决系统提示显卡内存不足的方法 - 河东软件园...
- 渗透测试-burp suite实战
- 彩票模拟程序 [福利彩票-双色球] [体育彩票 - 大乐透]
- 【转】WebRTC多人音视频解决方案