Articles of 代理

控制第三方API访问Android系统资源?

当您在Android项目中导入第三方API(数据包dependency injection,生成的库,源代码等)时,您认为它们的行为与广告相同。 大多数时间代码不是开源的,它被混淆或者只是被编译。 有没有办法控制这些API访问重要的系统资源,如networking,联系人,video和audio,位置? 最好的办法是为系统资源提供一个proxy 。 这将有以下好处: testing可以通过在代理中提供模拟数据来执行 如果没有必要,您的应用程序将不必提供API所需的所有权限,并且代理可以通过模拟授予的权限来允许API不因为权限而中断 过滤本地收集的有关用户的可能数据,并发送到API home repo,用于广告或恶意用途 由于用户定义的活动和服务不能控制第三方API的服务,甚至不能阻止他们直接调用任何Android公共接口,所以我没有find如何实现这样的解决scheme。 该解决scheme不应该需要root访问权限,因为您不希望将此控件超出您自己的应用程序的界限。 这个问题的内容与几个问题有关,这些问题涉及这个广泛问题的特殊性( 内容提供者的日志数据 , networking请求 – 在研究答案时让我想到这个问题) 注意 :简短的答案是否定的,但可以有足够的创造性(也许去本地级别的黑客可能会解决这个问题 – idk)

Android的代理混淆了文档资源

在我看来,有关Android上的代理主题有很多令人困惑的资源。 首先,似乎Proxy类的所有方法都被声明为废弃,并build议: “使用标准的Java虚拟机代理值来查找主机,端口和排除列表,这个调用忽略了排除列表。 官方Java虚拟机代理值可以通过以下方式访问: System.getProperty("http.proxyHost") System.getProperty("http.proxyPort") System.getProperty("http.nonProxyHosts") 这似乎证实了ProxySelector类的文档。 但是尝试一个真实的设备或模拟器,这些值在我看来总是空的。 查看隐藏的ProxySelector活动的Android源代码之后,似乎代理以下列方式保存到系统的安全设置中: Settings.Secure.putString(res, Settings.Secure.HTTP_PROXY, hostname); 只有由OS提供商签名的应用程序才能写入安全设置。 开发人员只能按以下方式在读取模式下访问这些设置: Settings.Secure.getString(getApplicationContext().getContentResolver(),Settings.Secure.HTTP_PROXY); 有人可以澄清,如果这是正确的阅读如何可以访问到Android的代理设置? (至less它似乎工作)。 如果这是一个正确的解释,为什么文档是如此充满错误?

Samsung Galaxy S4(SGS4)上的Android Socket问题

我们最近已经收到三星Galaxy S4在我们的Android应用程序中播放audio的报道。 该应用程序在其他设备上很好。 audio使用MediaPlayer进行stream式传输。 它使用Android Socket方法保存在本地。 Logcat中的警告是由以下原因造成的: try { byte[] buffer = httpString.toString().getBytes(); int readBytes = -1; Log.d(LOG_TAG, "writing to client"); client.getOutputStream().write(buffer, 0, buffer.length); // Start streaming content. byte[] buff = new byte[1024 * 64]; while (isRunning && (readBytes = data.read(buff, 0, buff.length)) != -1) { client.getOutputStream().write(buff, 0, readBytes); } } 堆栈跟踪如下: D/StreamProxy(3913): downloaded D/StreamProxy(3913): […]

在Android中获取WiFi代理设置

我正在尝试阅读WIFI代理设置 代理主机 代理端口 代理用户(authentication) 代理密码(authentication) 从Android版本2.XX – 4.XX的设备没有任何成功。 呼叫: String proxy = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.HTTP_PROXY); 总是返回null。 我也添加到我的Android清单: <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> 它仍然返回null。 还试过: android.net.Proxy. getHost(Context ctx) – which is deprecated – returns the IP android.net.Proxy. getPortt(Context ctx) – which is deprecated – returns always -1. Java调用: System.getProperty("http.proxyHost"); System.getProperty("http.proxyCall"); 也返回null。 是否有一个工作代码,检索所有这些设置或至less部分从所有Android版本的设备?

Genymotion代理与用户/密码

我通过Genymotion使用以下configuration来运行Android: 对于仅用于主机的192.168.1.213,DHCP分配的地址是192.168.1.214 我的电脑后面有一个Squid代理,有用户和密码,地址192.168.1.2与端口4444 我启动Android VM,并在Genymotionconfiguration我可以看到IPpipe理是IP 192.168.1.214。 我也可以用我的电脑ping通这个地址,所以一切都很好,直到这里。 如果我进入菜单 – >设置 – >无线和networking – > Wi-Fi – > WiredSSID – >修改networking,我看到IP地址10.0.3.15 – 为什么? 此外,如果我尝试configuration代理服务器,我得到的是主机和端口,但没有用户/通过选项,所以当我尝试访问浏览器中的页面时,它说,代理身份validation不起作用。 有没有办法configurationAndroid通过我的代理工作? 如果是这样,我应该configuration什么? 谢谢

roboblender-3.0.1.jar:不包含在Android:javax.tools中。 引用来自com.google.inject.blender.AnnotationDatabaseGenerator

我试图build立我的android项目,我得到: Information:Gradle: Executing tasks: [clean, :app:compileDebugSources] Information:1/10/15, 11:13 AM – Compilation completed successfully in 5 sec 然后我尝试将其部署到我的设备,并得到: FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:lint'. > Lint found errors in the project; aborting build. Fix the issues identified by lint, or add the following to your build script […]

从代理对象访问字段

在开发Android的ORM框架时,我遇到了一个有趣的问题。 我正在使用一个名为dexmaker的库来进行字节码操作,这使我可以为持久对象创build代理来实现延迟加载。 被代理的实例有一个关联的InvocationHandler ,当代理invoke方法时, InvocationHandler invoke方法,然后调用代理对象各自的方法,假设它被延迟加载。 没有什么太意外的 – 就像Java的Proxy类一样,但是允许我代替实际的类来代替接口(参见dexmaker的ProxyBuilder )。 成为问题的部分是我也使用reflection来检索来自持久对象的字段值,现在我已经引入了延迟加载代理。 这是我目前正在做的事情: for (Field f : getPersistentFields(model.getClass()) { … Object val = f.get(model); // model is either a persistent object or a proxy for one mapField(f, val, map); } 这当然适用于常规模型实例,但对于代理实例, f.get(model)不会检索代理对象的字段值。 相反,它会返回在类的构造函数中分配的默认值。 代理领域的访问没有被明显拦截。 我的问题是这样的:有什么办法可以拦截通过reflection的代理的成员variables访问? 如果不是,我怎样才能以类似“reflection”的方式检索代理字段的值? 我想到的一个可能的解决方法是检索,然后调用字段的getter方法使用reflection,但我想知道是否有一个更直接的解决scheme。 这个解决方法,如果它真的起作用 ,将需要对象为所有持久性字段设置一个getter方法 – 一个通常应该从OOdevise的angular度来遵循的要求,但是也会把更多的工作强加给框架的用户。 我愿意接受任何想法。

Android通用用户代理(UA)

我正在构build一个Android应用程序来显示来自服务器的内容提要。 服务器是一个移动网站(如http://m.google.com ),它跟踪来自各种移动客户端的stream量。 要区分Android客户端,我该如何为我的应用程序提供一个通用string? 这就是为什么我这样问: 我得到的一些Android设备有UAstring,如: Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; ADR6400L 4G Build/FRG83D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 Mozilla / 5.0(Linux; U; Android 2.1; en-us; Eclair_SPR Build / 30201)AppleWebKit / 520.17(KHTML,如Gecko)版本4.0 Mobile Safari / 520.17 我需要附加一个string到UserAgentstring来识别我的应用程序。 例如: 我需要做这样的事情: Mozilla/5.0 (Linux; U; Android 2.1; en-us; Eclair_SPR Build/30201) AppleWebKit/520.17 (KHTML, like Gecko) Version/4.0 […]

XMPP FileTransfer – 为什么字节stream协议失败?

我的问题:我正在通过XMPP在Android和iOS上将文件传输到Spark客户端(Spark 2.6.3)。 我已经成功完成了这个android(由于漂亮的库),但还没有在iOS上成功。 但是,在这两个设备上,我已经注意到通过字节stream传输失败… <error code="404" type="CANCEL"><item-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" xml:lang="en">Could not establish socket with any provided host</text></error> 在Android的转让完成诉诸ibb … <iq id="DK1IO-19" to="myUsername@beta.myCompany.co.uk/Spark 2.6.3" type="set"><open xmlns="http://jabber.org/protocol/ibb" block-size="4096" sid="jsi_4740809287923906297" stanza="iq"/></iq> 此外,在Android上,当我从Spark发送文件到我的Android应用程序,似乎通过字节stream正常工作。 因此,在iOS上,我必须自己编写ibb连接,但是为什么字节stream会失败呢? 完整日志(Android应用程序): 05-15 13:42:04.023: I/System.out(523): 01:42:04 PM RCV (1093423288): <iq id="DK1IO-9" to="myUsername@beta.myCompany.co.uk/123" from="friendsUsername@beta.myCompany.co.uk/Spark 2.6.3" type="result"><si xmlns="http://jabber.org/protocol/si"><feature xmlns="http://jabber.org/protocol/feature-neg"><x xmlns="jabber:x:data" type="submit"><field var="stream-method"><value>http://jabber.org/protocol/bytestreams</value><value>http://jabber.org/protocol/ibb</value></field></x></feature></si></iq> 05-15 13:42:04.040: I/System.out(523): 01:42:04 PM SENT […]

Firebase的Android代理设置

我已经做了一个Android应用程序https://play.google.com/store/apps/details?id=com.confesco.maggi与firebase作为数据库使用3Gnetworking时运行良好。当我使用的问题它是在我们学院的代理下,它不能连接到数据库。有什么办法可以解决这个问题。提前感谢。