@Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { this.callbackContext = callbackContext; Log.d("WIFI", action); if(ACTION_START.equals(action)){ PluginResult pgRes = new PluginResult(PluginResult.Status.OK, "Registered"); pgRes.setKeepCallback(true); mWifiManager = (WifiManager) this.cordova.getActivity().getSystemService(Context.WIFI_SERVICE); this.reciever = new BroadcastReceiver() { @Override public void onReceive(Context c, Intent intent) { List<ScanResult> scanResults = mWifiManager.getScanResults(); handleResults(scanResults); } }; this.cordova.getActivity().registerReceiver(this.reciever, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); callbackContext.sendPluginResult(pgRes); Log.d("WIFI", "inside " + action); return true; } else if (ACTION_SCAN.equals(action)){ PluginResult pgRes = new PluginResult(PluginResult.Status.OK, []); pgRes.setKeepCallback(true); mWifiManager = (WifiManager) this.cordova.getActivity().getSystemService(Context.WIFI_SERVICE); mWifiManager.startScan(); callbackContext.sendPluginResult(pgRes); Log.d("WIFI", "inside " + action); return true; } else if (ACTION_STOP.equals(action)){
@Override public boolean execute(String action, JSONArray data, CallbackContext callbackContext) throws JSONException { reader.start(); am.setStreamVolume( AudioManager.STREAM_MUSIC, am.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0); this.callbackContext = callbackContext; timedOut = false; Log.w(TAG, action); if (mute) { PluginResult dataResult = new PluginResult(PluginResult.Status.OK, "NOTFOUND"); callbackContext.sendPluginResult(dataResult); return true; } final ACR35Controller self = this; final String loadKeyCommand = "FF 82 00 00 06 %s"; final String authCommand = "FF 86 00 00 05 01 00 %s 60 00"; final String defaultKey = "FF FF FF FF FF FF"; String authKeyCommand = "FF 86 00 00 05 01 00 00 60 00"; if (action.equals("getDeviceId")) { cordova .getThreadPool() .execute( new Runnable() { @Override public void run() { reader.setMute(false); reader.reset( new AudioJackReader.OnResetCompleteListener() { @Override public void onResetComplete(AudioJackReader audioJackReader) { reader.getDeviceId(); } }); } }); } if (action.equals("getDeviceStatus")) { cordova .getThreadPool() .execute( new Runnable() { @Override public void run() { reader.setMute(false); reader.reset( new AudioJackReader.OnResetCompleteListener() { @Override public void onResetComplete(AudioJackReader audioJackReader) { reader.getStatus(); } }); } }); } if (action.equals("readIdFromTag")) { executeAPDUCommands(new byte[][] {hexToBytes("FFCA000000")}); } if (action.equals("readDataFromTag")) { executeAPDUCommands( new byte[][] { hexToBytes(String.format(loadKeyCommand, defaultKey)), hexToBytes(String.format(authCommand, "04")), hexToBytes("FF B0 00 04 10"), hexToBytes("FF B0 00 05 10"), hexToBytes("FF B0 00 06 10"), hexToBytes(String.format(authCommand, "08")), hexToBytes("FF B0 00 08 10"), hexToBytes("FF B0 00 09 10"), hexToBytes("FF B0 00 0A 10"), hexToBytes(String.format(authCommand, "10")), hexToBytes("FF B0 00 10 10"), hexToBytes("FF B0 00 11 10") }); } if (action.equals("writeDataIntoTag")) { try { String dataString = data.get(0).toString(); byte[] dataToWrite = new byte[128]; Arrays.fill(dataToWrite, (byte) 0); byte[] dataBytes = hexToBytes(dataString); System.arraycopy(dataBytes, 0, dataToWrite, 0, dataBytes.length); String dataStringToWrite = bytesToHex(dataToWrite).replaceAll("\\s", ""); String commandString1 = "FF D6 00 04 30" + dataStringToWrite.substring(0, 95); String commandString2 = "FF D6 00 08 30" + dataStringToWrite.substring(96, (96 * 2) - 1); String commandString3 = "FF D6 00 10 20" + dataStringToWrite.substring(96 * 2, (96 * 2 + 64) - 1); Log.w(TAG, dataStringToWrite); executeAPDUCommands( new byte[][] { hexToBytes(String.format(loadKeyCommand, defaultKey)), hexToBytes(String.format(authCommand, "04")), hexToBytes(commandString1), hexToBytes(String.format(authCommand, "08")), hexToBytes(commandString2), hexToBytes(String.format(authCommand, "10")), hexToBytes(commandString3), }); } catch (java.lang.Exception e) { Log.w(TAG, e); } } Calendar calendar = Calendar.getInstance(); // gets a calendar using the default time zone and locale. calendar.add(Calendar.SECOND, timeOut); timer = new Timer(); timer.schedule(new TimeoutClass(reader, self), calendar.getTime()); PluginResult dataResult = new PluginResult(PluginResult.Status.OK, "IGNORE"); dataResult.setKeepCallback(true); callbackContext.sendPluginResult(dataResult); return true; }