gpt4 book ai didi

java - 检测 USB 连接并检查它是否是 PC

转载 作者:行者123 更新时间:2023-11-29 07:06:25 24 4
gpt4 key购买 nike

我想检测我的 android 手机是否通过 USB 连接...为此我使用此代码:

public static boolean isConnected(Context context) {
intent = context.registerReceiver(null, new IntentFilter("android.hardware.usb.action.USB_STATE"));
return intent.getExtras().getBoolean("connected");
}

但是是否有可能明确知道我是否已连接到 PC?!因为我的解决方案会触发事件,即使我将手机连接到打印机或其他带有 USB 端口的东西...

我已经尝试了@nios 刚刚发布的解决方案,但是如果 isCharging 和 usbCharge boolean 值设置为 true,则不能保证您已连接到 PC...即使您已连接到打印机,这两个 boolean 值也会赌注设置为真...这是我的问题

最佳答案

您可以使用这个 IntentFilter :

IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);

// Are we charging / charged?
int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
status == BatteryManager.BATTERY_STATUS_FULL;

// How are we charging?
int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;

如果 isChargingusbCharge boolean 值设置为 true,则您已通过 USB 连接到 PC。

希望这对您有所帮助。

发现于 http://developer.android.com/training/monitoring-device-state/battery-monitoring.html

关于java - 检测 USB 连接并检查它是否是 PC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19227464/

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