import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.hardware.usb.UsbManager;
public class USB_Detect {
    public interface USB_detect_action{
        
        public  void usb_attached();
        
        
        public  void usb_detached();
        
    }
    public  USB_detect_action usb_action=null;
    private    USBStatus status = new USBStatus();
    private  final String USB_PERMISSION = "USB";
    private  Activity p_activity;
    public   void register_detect(Activity activity){
        p_activity=activity;
        IntentFilter filter = new IntentFilter();
        filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
        filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
        filter.addAction(USB_PERMISSION);
        activity.registerReceiver(status, filter);
    }
    public void unregister_detect(){
        p_activity.unregisterReceiver(status);
    }
    
    private  class USBStatus extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if (action == null) return;
            switch (action) {
                /**偵測USB插入*/
                case UsbManager.ACTION_USB_DEVICE_ATTACHED:
                    if(usb_action!=null){
                        usb_action.usb_attached();
                    }
                    break;
                /**偵測USB拔除*/
                case UsbManager.ACTION_USB_DEVICE_DETACHED:
                    if(usb_action!=null){
                        usb_action.usb_detached();
                    }
                    break;
            }
        }
    }
    
}
 
沒有留言:
張貼留言