Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否有办法确定是否已移除任何类型的外围设备?_Java_Android_Peripherals - Fatal编程技术网

Java 是否有办法确定是否已移除任何类型的外围设备?

Java 是否有办法确定是否已移除任何类型的外围设备?,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

我知道通过使用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连接/断开事件的exmaple

 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");
    }
  }