diff --git a/src/android/ChromeUsb.java b/src/android/ChromeUsb.java index 937d419..cc8473b 100644 --- a/src/android/ChromeUsb.java +++ b/src/android/ChromeUsb.java @@ -12,6 +12,7 @@ import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaArgs; import org.apache.cordova.CordovaPlugin; +import org.apache.cordova.PluginResult; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -22,6 +23,7 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.pm.PackageManager; import android.hardware.usb.UsbConstants; import android.hardware.usb.UsbDevice; import android.hardware.usb.UsbDeviceConnection; @@ -121,7 +123,11 @@ public boolean execute(String action, final CordovaArgs args, final CallbackCont } try { - if ("getDevices".equals(action)) { + if ("hasUsbHostFeature".equals(action)) { + boolean usbHostFeature = cordova.getActivity().getApplicationContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_USB_HOST); + callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, usbHostFeature)); + return true; + } else if ("getDevices".equals(action)) { cordova.getThreadPool().execute(new Runnable() { public void run() { try { diff --git a/usb.js b/usb.js index c6ab29a..12ba974 100644 --- a/usb.js +++ b/usb.js @@ -199,3 +199,18 @@ exports.requestAccess = function(device, interfaceId, callback) { }, 0); }; + +exports.cordova = { + hasUsbHostFeature: function(callback) { + exec(function(result) { + callback(result); + }, + function(error) { + callback(false); + }, + 'ChromeUsb', + 'hasUsbHostFeature', + [{}]); + } +}; +