Java 是否有办法确定是否已移除任何类型的外围设备?
我知道通过使用intent filter->ACTION\u ACL\u CONNECTED,ACTION\u ACL\u DISCONNECT\u REQUESTED,ACTION\u ACL\u DISCONNECTED\u,WiFi和Bluetooth有一些功能,但是否有一些功能可以检查连接的设备是否已被移除。例如:我已经将我的Android设备连接到我的Mac电脑,现在智能手机被锁定,我删除了与我的Mac电脑的连接,我可以触发本地推送或声音,或者在这个方向上的其他东西 更新 尝试了@Rajesh Gopu的答案,看起来不错,但不幸的是,没有成功:( 使用广播接收机, Android系统通过brodcasting通知internel事件。 应用程序可以通过向BroadcastReceiver注册操作来接收此信息 下面是接收usb连接/断开事件的exmapleJava 是否有办法确定是否已移除任何类型的外围设备?,java,android,peripherals,Java,Android,Peripherals,我知道通过使用intent filter->ACTION\u ACL\u CONNECTED,ACTION\u ACL\u DISCONNECT\u REQUESTED,ACTION\u ACL\u DISCONNECTED\u,WiFi和Bluetooth有一些功能,但是否有一些功能可以检查连接的设备是否已被移除。例如:我已经将我的Android设备连接到我的Mac电脑,现在智能手机被锁定,我删除了与我的Mac电脑的连接,我可以触发本地推送或声音,或者在这个方向上的其他东西 更新 尝试了@Ra
IntentFilter filter = new IntentFilter();
filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
registerReceiver(mUsbReceiver, filter); //register
// BroadcastReceiver when insert/remove the device USB plug into/from a USB port
BroadcastReceiver mUsbReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {//get Event
String action = intent.getAction();
System.out.println("BroadcastReceiver Event");
if (UsbManager.ACTION_USB_DEVICE_ATTACHED.equals(action)) {
System.out.println("BroadcastReceiver USB Connected");
} else if (UsbManager.ACTION_USB_DEVICE_DETACHED.equals(action)) {
System.out.println("BroadcastReceiver USB Disconnected");
}
}
}“我已经将我的Android设备连接到我的Mac”——连接它……如何连接?其实并不重要。我指的是任何类型的连接/断开侦听器……蓝牙和WiFi在断开连接后都很容易收听,但例如,用usb线连接如何。“没什么关系”--是的,确实如此。例如,没有监听器来确定您是否已通过一段字符串将设备连接到Mac。Android中这种性质的API往往侧重于连接技术,而不是连接的目标。“例如,使用usb电缆连接如何?”--这可能取决于电缆的具体使用情况(
adb
?将外部存储安装为卷的MTP?USB主机/附件API?其他什么?)。我不担心设备被删除。只连接。根本不需要知道设备是否被删除。如果你的应用程序一开始没有检测到更改,那就无关紧要了。你是否在清单文件android.hardware.usb.action.action\u usb\u permission中添加了所需的权限
IntentFilter filter = new IntentFilter();
filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
registerReceiver(mUsbReceiver, filter); //register
// BroadcastReceiver when insert/remove the device USB plug into/from a USB port
BroadcastReceiver mUsbReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {//get Event
String action = intent.getAction();
System.out.println("BroadcastReceiver Event");
if (UsbManager.ACTION_USB_DEVICE_ATTACHED.equals(action)) {
System.out.println("BroadcastReceiver USB Connected");
} else if (UsbManager.ACTION_USB_DEVICE_DETACHED.equals(action)) {
System.out.println("BroadcastReceiver USB Disconnected");
}
}