gpt4 book ai didi

android - 如何通过 Broadcast Receiver 检测我的 android 设备是否连接到 usb 或 car dock?

转载 作者:行者123 更新时间:2023-11-30 03:20:12 25 4
gpt4 key购买 nike

我正在尝试使用 Broadcast Receiver 将我的设备连接到 USB 或车载底座,但没有得到正确的结果。请帮忙?提前致谢。接收者代码是:

public class CarDockReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Car Dock Receiver registerd", Toast.LENGTH_SHORT).show();
switch (intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1)) {
case BatteryManager.BATTERY_PLUGGED_AC:
Toast.makeText(context, "Battery plugged AC", Toast.LENGTH_SHORT).show();
break;
case BatteryManager.BATTERY_PLUGGED_USB:
Toast.makeText(context, "Battery plugged USB", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
}

Manifest 文件中的接收者是:

<receiver
android:name=".CarDockReceiver"
android:enabled="true" >
<intent-filter>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
</intent-filter>
</receiver>

最佳答案

刚刚解决了检测 USB 设备插入的类似问题。事实证明 - 因为您在 list 中指定了一个 intent 过滤器 - Android 在插入某些东西时调用 onResume。您可以尝试添加这个:

@Override
protected void onResume() {
super.onResume();

Intent intent = getIntent();
if (intent != null) {
Log.d("onResume", "intent: " + intent.toString());
if (intent.getAction().equals(UsbManager.ACTION_USB_DEVICE_ATTACHED)) {
// Do your thing ...
}

运行它以查看确切记录的内容,并使用该信息检查要检查的正确操作(在上例中替换此处的 ACTION_USB_DEVICE_ATTACHED)。

关于android - 如何通过 Broadcast Receiver 检测我的 android 设备是否连接到 usb 或 car dock?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19286612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com