在Intent中,有一个名为ACTION_DOCK_EVENT
在API level 5
中添加了
广播操作:用于更改设备物理对接状态的粘性广播。
对接状态是什么意思?
答案 0 :(得分:2)
Android设备可以停靠在几种不同类型的基座设备中。这些包括汽车或家庭码头以及数字与模拟码头。因此,当设备的扩展坞发生更改时,它会抛出ACTION_DOCK_EVENT
如果设备已停靠,则可将其停靠在四种不同类型的基座中的任何一种:
资源here
答案 1 :(得分:1)
对接状态是什么意思
停靠状态通常表示您的充电状态,可能是car
,home dock
,digital
或analog docks
,Android设备可以停靠在几种不同的码头中
确定当前停靠状态
dock-state
操作的粘性广播中包含ACTION_DOCK_EVENT
详细信息。因为它是sticky
,所以您无需注册BroadcastReceiver
。你可以简单地调用registerReceiver()
作为广播接收器传入null,如下一个片段所示。
IntentFilter ifilter = new IntentFilter(Intent.ACTION_DOCK_EVENT);
Intent dockStatus = context.registerReceiver(null, ifilter);
答案 2 :(得分:0)
停靠状态详细信息作为额外信息包含在ACTION_DOCK_EVENT操作的粘性广播中。因为它很粘,所以您不需要注册BroadcastReceiver。您可以简单地调用registerReceiver()作为广播接收器传入null,如下一个片段所示。
mContext = getApplicationContext();
IntentFilter ifilter = new IntentFilter(Intent.ACTION_DOCK_EVENT);
Intent dockStatus = registerReceiver(null, ifilter);
您可以从额外的EXTRA_DOCK_STATE提取当前停靠状态:
int dockState = (dockStatus == null ?
Intent.EXTRA_DOCK_STATE_UNDOCKED :
dockStatus.getIntExtra(Intent.EXTRA_DOCK_STATE, -1));
boolean isDocked = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED;
boolean isCar = dockState == Intent.EXTRA_DOCK_STATE_CAR;
每当设备停靠或取消停靠时,都会广播ACTION_DOCK_EVENT操作。要监视设备的停靠状态的变化,只需在应用程序清单中注册广播接收器,如下面的代码段所示: 动作android:name =“android.intent.action.ACTION_DOCK_EVENT”
希望这有帮助。
答案 3 :(得分:0)
来自 GeeksForGeeks 个帖子:
<块引用>扩展坞是一种能够与 Android 内核触发对接相关事件并修改 对接文件状态。扩展坞可以使系统和应用程序 任何被编程的东西。一个示例显示了不同的布局 在停靠状态。它也可能打开一个音乐播放器应用程序,播放音乐 自动在桌面模式下,如果它是这样编程的,打开一个 汽车模式下的地图/导航应用程序等。 Dock 模式在 不同的手机,但它经常把你的手机变成座钟, 照片幻灯片查看器或音乐播放器。您也可以将其设置为 接听电话时免提。码头内置于 自放大扬声器或音乐盒,或者它是一个独立的单元 通过 USB 连接到计算机、充电器或家庭影院 设备。一些扩展坞使用 USB 进行充电,使用蓝牙进行播放 音乐。此模式是在某些手机上可以检测到的功能, 包括许多三星手机,但不是检测到的功能 每部手机或手机的每个版本。例如,三星 Galaxy S2、S3 和 S4 有停靠模式,但 S5 没有。请检查 您的手机功能以确保您的手机配备基座 模式。