1
USB 이벤트 (ACTION_USB_DEVICE_ATTACHED &ACTION_USB_DEVICE_DETACHED)에서 수신 대기해야하는 앱에서 작업하고 있습니다. 나는이 행동들을 경청하는 수신기를 만들었다. 그러나 내 수신기는 이러한 사건이 발생할 때 발포하지 않습니다.BroadcastReceiver에서 Android USB 작업 (ACTION_USB_DEVICE_ATTACHED 및 ACTION_USB_DEVICE_DETACHED)이 작동하지 않습니다.
안드로이드 매니페스트 :
<uses-feature android:name="android.hardware.usb.host" />
<receiver android:name=".USBEventReceiver">
<intent-filter >
<action android:name="android.hardware.usb.action.USB_STATE"/>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/>
<action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED"/>
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/usb_device"/>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_DETACHED"
android:resource="@xml/usb_device"/>
</receiver>
브로드 캐스트 리시버 onReceive 방법 :
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
UsbDevice device = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
UsbManager usbManager = (UsbManager)context.getSystemService(Context.USB_SERVICE);
if (intent.getExtras().getBoolean("connected")) {
Log.d(TAG, "onReceive: connected");
} else if (!intent.getExtras().getBoolean("connected")) {
Log.d(TAG, "onReceive: disconnected");
}
if (usbManager != null) Log.d(TAG, "onReceive: " + usbManager.getDeviceList().toString());
if (device != null) Log.d(TAG, "USB Attached: " + device);
if (UsbManager.ACTION_USB_DEVICE_ATTACHED.equals(action)) {
Log.d(TAG, "onReceive: " + device.getManufacturerName());
Log.d(TAG, "onReceive: " + device.getProductName());
Log.d(TAG, "onReceive: " + device.getSerialNumber());
Log.d(TAG, "onReceive: " + device.getSerialNumber());
} else if (UsbManager.ACTION_USB_DEVICE_DETACHED.equals(action)) {
Log.d(TAG, "onReceive: " + device.getManufacturerName());
Log.d(TAG, "onReceive: " + device.getProductName());
Log.d(TAG, "onReceive: " + device.getSerialNumber());
}
}
는이에 대한 해결책을 받으셨어요는? – RohitMat
@RohitMat 예. 하나 얻었습니다. –