天天看点

判断usb插拔广播的形式

private static final String SDCARD_PATH = "/storage/emulated/0/";
           
private void registeUsbActionReceiver(Context context) {
        UsbReceiver usbReceiver = new UsbReceiver();
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addDataScheme("file");
        intentFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);
        context.registerReceiver(usbReceiver, intentFilter);
    }
           
private class UsbReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            String uri = intent.getData() != null ? intent.getData().toString() : null;
            if (uri==null) {
                return;
            }
            String filePath = uri.substring(7) + File.separator + FILE_NAME_FOR_LOG;
            if (filePath.startsWith(SDCARD_PATH)) {
                return;
            }
            Log.i("filePath:" + filePath);
            File file = new File(filePath);
            if (file.exists()) {
                //对usb做动作
            }
        }
    }