我正在建立一个Android媒体播放器应用程序,我打算使用它在电视上播放媒体(视频,图片等),同时通过HDMI电缆连接。
我想让媒体播放器应用程序暂停时,电视的电源状态关闭,并希望它播放时,电视打开。
当我的Android设备通过HDMI连接到电视时,我如何在我的Android应用程序中检测电视的电源状态?
电视和Android设备都支持HDMI-CEC。该设备是一个ODROID C2。我已经在KODI Android应用程序上看到了这个功能,它有一个功能,当HDMI-CEC状态关闭时,可以暂停视频,我也希望在我的应用程序中实现这个功能。
感谢任何帮助。提前道谢!
编辑:下面的进度
我尝试从文件/sys/devices/virtual/switch/HDMI/state
中读取HDMI连接的状态。但是,无论连接的屏幕/电视的电源状态是开还是关,此文件都保留int
1
。
第二次进度更新
我还在努力。不会放弃,一旦我完成了我一定会把答案贴在这里。
您可以通过注册Action_HDMI_Audio_Plug来监听HDMI状态的更改(0表示已拔出,1表示已插入)。当电视关闭、切换到任何其他显示介质或HDMI被移除时,它报告状态为0。要了解其技术性,您可以查看热插拔检测是如何在HDMI中工作的。总的来说,你的应用程序可以随时监控显示器当前是否可以播放你的内容。我自己在一个解决方案(在X96迷你android box和amazon fire-stick上)中实现了这一点,在这个方案中,我需要确保内容确实在播放,因为其中包含付费内容。此外,我还附上了示例代码文件。注意:这个解决方案只在android设备是HDMI源而不是接收器时才起作用!
这里也有文档链接-https://developer.android.com/reference/android/media/audiomanager#action_hdmi_audio_plug
private BroadcastReceiver eventReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// pause video
String action = intent.getAction();
switch (action) {
case ACTION_HDMI_AUDIO_PLUG :
// EXTRA_AUDIO_PLUG_STATE: 0 - UNPLUG, 1 - PLUG
Toast.makeText(getApplicationContext(),"HDMI PLUGGED OR UNPLUGGED",Toast.LENGTH_LONG).show();
Log.d("MainActivity", "ACTION_HDMI_AUDIO_PLUG " + intent.getIntExtra(EXTRA_AUDIO_PLUG_STATE, -1));
((TextView)(findViewById(R.id.textView))).setText(((TextView)(findViewById(R.id.textView))).getText().toString().concat("At "+System.nanoTime()+": "+intent.getIntExtra(EXTRA_AUDIO_PLUG_STATE, -1) +"\n"));
break;
}
}
};
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(eventReceiver);
}
@Override
protected void onResume() {
super.onResume();
IntentFilter filter = new IntentFilter();
filter.addAction(ACTION_HDMI_AUDIO_PLUG);
registerReceiver(eventReceiver, filter);
}
监视电源状态 进程: 主进程 该模块在主进程 app 模块的 ready 事件前使用. 1 const electron = require('electron') 2 const {app} = electron 3 4 app.on('ready', () => { 5 electron.powerMonitor.on('suspend', () => { 6 console.log('
我目前正在开发一款android wear应用程序,它有两种模式:连接(与手机配对)和断开连接。我看了这个帖子(如何检测android设备是否与android wear watch配对)。我添加了侦听器来检测何时找到节点。 存在以下情况:-如果启动移动应用程序,wear应用程序将检测到节点并进入连接模式。-如果移动应用程序被杀死,它会在被销毁之前向手表发送一条消息,手表会进入断开连接模式如果蓝牙连
问题内容: 众所周知,Android设备具有将手机变成接入点/热点的功能。 是否可以通过编程方式获取连接到手机wifi接入点的设备数量? 问题答案: 您可以在接入点上计数已连接的设备,并且可以在android的以下链接上获取硬件mac地址:http : //www.flattermann.net/2011/02/android-howto-find-the-hardware-mac-address
我正在尝试检测已经连接到android的usb设备。我知道有动作可以检测USB何时连接或断开。但是我真的不知道如何在将usb设备连接到android后检查设备。另外,我发现每个USB设备都有它的设备类别代码,但是我怎么知道连接的是哪种设备呢?例如,我需要检测usb鼠标和键盘;我如何区分它们?
我试图建立一个应用程序,也可以通过按下设备电源按钮两次打开。我已经按照这个问题的答案来构建我的应用程序。但是应用关闭时后台服务不工作。尽管它在应用程序运行时似乎工作正常。以下是服务LockS的代码ervice.java 应用程序ScreenReceiver的BroadcastReceiver类。JAVA 主要活动。JAVA 最后是一份清单。xml文件在这里。我应该怎么做才能正常运行应用程序?