Setting WebView proxy on Android 4.4.4 -


i have code used work fine setting proxy programmatically on kitkat after 4.4.4 update appears not working. has else seen issue? there fix? have confirmed on different device 4.4.2 , still works there. thanks.

private static boolean setproxykk(webview webview, string host, int port, string applicationclassname) {         log.d(log_tag, "setting proxy >= 4.4 api.");          context appcontext = webview.getcontext().getapplicationcontext();         system.setproperty("http.proxyhost", host);         system.setproperty("http.proxyport", port + "");         system.setproperty("https.proxyhost", host);         system.setproperty("https.proxyport", port + "");         try {             class applictioncls = class.forname(applicationclassname);             field loadedapkfield = applictioncls.getfield("mloadedapk");             loadedapkfield.setaccessible(true);             object loadedapk = loadedapkfield.get(appcontext);             class loadedapkcls = class.forname("android.app.loadedapk");             field receiversfield = loadedapkcls.getdeclaredfield("mreceivers");             receiversfield.setaccessible(true);             arraymap receivers = (arraymap) receiversfield.get(loadedapk);             (object receivermap : receivers.values()) {                 (object rec : ((arraymap) receivermap).keyset()) {                     class clazz = rec.getclass();                     if (clazz.getname().contains("proxychangelistener")) {                         method onreceivemethod = clazz.getdeclaredmethod("onreceive", context.class, intent.class);                         intent intent = new intent(proxy.proxy_change_action);                          /*********** optional, may need in future *************/                         final string class_name = "android.net.proxyproperties";                         class cls = class.forname(class_name);                         constructor constructor = cls.getconstructor(string.class, integer.type, string.class);                         constructor.setaccessible(true);                         object proxyproperties = constructor.newinstance(host, port, null);                         intent.putextra("proxy", (parcelable) proxyproperties);                         /*********** optional, may need in future *************/                          onreceivemethod.invoke(rec, appcontext, intent);                     }                 }             }              log.d(log_tag, "setting proxy >= 4.4 api successful!");             return true;         } catch (classnotfoundexception e) {             stringwriter sw = new stringwriter();             e.printstacktrace(new printwriter(sw));             string exceptionasstring = sw.tostring();             log.v(log_tag, e.getmessage());             log.v(log_tag, exceptionasstring);         } catch (nosuchfieldexception e) {             stringwriter sw = new stringwriter();             e.printstacktrace(new printwriter(sw));             string exceptionasstring = sw.tostring();             log.v(log_tag, e.getmessage());             log.v(log_tag, exceptionasstring);         } catch (illegalaccessexception e) {             stringwriter sw = new stringwriter();             e.printstacktrace(new printwriter(sw));             string exceptionasstring = sw.tostring();             log.v(log_tag, e.getmessage());             log.v(log_tag, exceptionasstring);         } catch (illegalargumentexception e) {             stringwriter sw = new stringwriter();             e.printstacktrace(new printwriter(sw));             string exceptionasstring = sw.tostring();             log.v(log_tag, e.getmessage());             log.v(log_tag, exceptionasstring);         } catch (nosuchmethodexception e) {             stringwriter sw = new stringwriter();             e.printstacktrace(new printwriter(sw));             string exceptionasstring = sw.tostring();             log.v(log_tag, e.getmessage());             log.v(log_tag, exceptionasstring);         } catch (invocationtargetexception e) {             stringwriter sw = new stringwriter();             e.printstacktrace(new printwriter(sw));             string exceptionasstring = sw.tostring();             log.v(log_tag, e.getmessage());             log.v(log_tag, exceptionasstring);         } catch (instantiationexception e) {             stringwriter sw = new stringwriter();             e.printstacktrace(new printwriter(sw));             string exceptionasstring = sw.tostring();             log.v(log_tag, e.getmessage());             log.v(log_tag, exceptionasstring);         }         return false;     } 


Comments

Popular posts from this blog

javascript - RequestAnimationFrame not working when exiting fullscreen switching space on Safari -

jsf - How to ajax update an item in the footer of a PrimeFaces dataTable? -

django - CSRF verification failed. Request aborted. CSRF cookie not set -