我在USB_ACCESSORY_ATTACHED的构造函数中声明了MyDialogFragment的意图过滤器,并在片段的onResume和onPause方法中注册/注销了它。MyReceiver在内部类中扩展BroadcastReceiver以接收USB_ACCESSORY_ATTACHED意图。见以下代码:
public class MyDialogFragment extends DialogFragment {
private Context context;
private IntentFilter usbIntentFilter;
private MyReceiver myReceiver;
MyDialogFragment(Context context) {
usbIntentFilter = new IntentFilter(UsbManager.ACTION_USB_ACCESSORY_ATTACHED);
myReceiver = new myReceiver();
this.context = context;
}
@Override
public void onResume() {
super.onResume();
// Register broadcast receiver
context.registerReceiver(myReceiver, usbIntentFilter);
}
@Override
public void onPause() {
super.onPause();
// Unregister broadcast receiver
context.unregisterReceiver(myReceiver);
}
class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("MyApp","Called USB receiver");
}
}
}但是,当我附加一个onReceive附件时,MyReceiver的MyReceiver方法就不会被调用。此外,当我改变意图时
usbIntentFilter = new IntentFilter(UsbManager.ACTION_USB_ACCESSORY_DETACHED);onReceive方法MyReceiver确实会被调用。所以我的问题是:为什么当我分离附件的时候,它会工作,而当我附加附件的时候,它却不起作用?
发布于 2013-11-04 18:47:13
因此,USB_ACESSORY_ATTACHED意图似乎从未真正深入到该活动中,请参见这样的问题:
您必须使用由onResume间接调用的USB_ACCESSORY_ATTACHED方法。我不得不说,这在Android文档中是不清楚的,我怀疑它的实现。
https://stackoverflow.com/questions/19770788
复制相似问题