问题标签 [android-networking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1888 浏览

java - 如何使用标题“范围”分部分发送文件?

我想通过将大文件分成小部分并分别发送来发送大文件。我尝试使用 hedder“范围”并得到“org.apache.http.client.NonRepeatableRequestException:无法用不可重复的请求实体重试请求”。

我还尝试了“Content-Range”标题(而不是“Range”),我得到了同样的例外。

0 投票
1 回答
417 浏览

android - 应用程序打开时如何获取服务器更新?

嘿,这可能被问了几次,但我似乎找不到。

Androids C2DM 服务允许在应用程序不活动时向其发送消息,对吗?所以从服务器发送通知很有用。问题是,当用户使用应用程序并且服务器有更新时,我应该如何通知他?我可以使用刷新按钮,但我宁愿不使用。

所以我的问题真的是如何实现这一目标?

如果用户在线,C2DM 服务如何操作?它的工作原理是否相同,我可以只处理该事件来更新内容吗?

或者我应该使用某种后台线程/AsyncTask/Service?我不确定其中哪一个适合这项任务。

从逻辑上讲,每隔几秒钟就通过 http 请求到达服务器似乎效率低下,因此如果可能的话,C2DM 似乎是更好的选择。

有什么想法吗?

0 投票
1 回答
268 浏览

android - 基于接收广播意图启动网络通信的正确方法是什么?

我开始使用 Google 的 C2DM。此过程的一部分涉及在注册发生时接收广播意图。在Google 的官方 C2DM 文档中,示例代码在 BrodcastReceiver 的 onReceive() 方法中显示了以下注释:

但是,我读过的所有内容,包括BroadcastReceiver 的文档,都表明从 onReceive() 启动线程几乎肯定会导致问题,因为一旦 onReceive() 返回,该进程可能很快就会被终止。

有人可能只是犯了一个错误,我应该忽略关于使用单独线程的评论,但我猜他们这么说是有原因的,即使它具有误导性。

在返回之前是否有理由不能或不应该使用与 onReceive() 相同的线程中的网络?如果这样做有问题,那么处理必须是常见情况的正确方法是什么,即使在 C2DM 之外也是如此?启动服务?

0 投票
3 回答
10698 浏览

java - 如何在 Android 中使用自签名 SSL 证书

这件事已经困扰我好几天了。我已经阅读了很多关于整个问题的其他问题,但仍然无法继续。

我创建了一个简单的测试应用程序,只是为了在 Android 上测试 SSL。该应用程序只有一个按钮,单击该按钮时,该应用程序会尝试通过 SSL 加密连接向我的测试服务器发送“Hello World”,然后它会以完全相同的短语进行响应。

首先,我使用 openssl 为我的服务器创建了一个测试密钥和测试证书。然后我一直按照Crazy Bob 的博客中的说明进行操作。我直接从 Bouncy Castle 的站点获得了 Bouncy Castle 提供程序,创建了一个受信任的密钥库,如 Crazy Bob 的博客上所示,并且我相信此时一切都正确。

当我尝试运行我的代码时,我得到了异常“IOException:错误版本的密钥库”。然后我在 StackOverflow 上找到了这个问题。有人建议我应该尝试使用较旧的 Bouncy Castle Providers 而不是最新的 bcprov-jdk15on-147.jar。我继续考虑这一点,实际上最终尝试了从 jdk13-146 到 jdk16-146 的每个 bcpprovider。仍然每次我得到相同的“IOExcpetion:错误版本的密钥库”。例外。

然后我在 StackOverflow 上发现了另一个关于类似问题的问题。有人设法通过使用 512 位大小的密钥而不是 1024 位大小的密钥来摆脱该异常。好吧,我试了一下,什么也没做,但同样的例外。

所以我现在在这里,想知道下一步该怎么做。我几乎没有想法和谷歌搜索结果。

我的网络代码是疯狂鲍勃代码的一对一副本,除此之外,应用程序只有处理按钮的活动类。我正在尝试在 API 级别 7 上实现这一点。

任何帮助将不胜感激。谢谢。

0 投票
1 回答
328 浏览

android - 在 Android 中监控数据包

让我解释一下我正在尝试做些什么来增加视角。我想编写一个应用程序,其功能之一是监控网络流量。即我希望能够读取不同应用程序生成的流量。我想确定应用程序是否生成 HTTP 或 HTTPS 流量。IE。应用程序是否安全。现在,我有一些代码可以在手机上运行 shell 命令。我想知道完成这项任务的最佳方法是什么。

我的一个想法是使用 tcpdump 并将其转储到一个文件中,然后使用一些 bash 对其进行分析。但我不确定 tcpdump 是否本机出现在 android 手机上。

谢谢 !

0 投票
1 回答
237 浏览

android - Android 应用无法通过网络进行通信

我在一些客户的手机上遇到了一个奇怪的问题。看来,在服务区之外几个小时后,我的 Android 应用程序将失去访问网络的能力。网络浏览器或电子邮件等其他应用程序可以访问网络,但我的应用程序不能。

唯一可以想到的解释是,在没有数据服务的情况下,它以某种方式泄漏了套接字。

这是我的代码:

此函数大约每十分钟调用一次,以向远程服务器发送更新。当应用程序进入这种奇怪的状态时,用户仍然能够打开活动、与菜单交互等,因此应用程序仍在运行。但是,它无法通过网络发送任何内容。

任何想法可能会发生什么?

有问题的手机是 myTouch 4G 和在 T-Mobile 网络上运行 Android 2.3 的三星 Galaxy II。

谢谢。

0 投票
1 回答
181 浏览

android - Using Service for long network connection

Right now I have a server running on a desktop. I want to be able to start up my app, hit a button to start collecting data from this server, and only stop once I hit to button again. The user should always be grabbing data from this server after hitting the button, even if the app isn't active. So far I've considered setting up a Service or using Threads by themself.

A Service sounds exactly like what I need, but I've been told it isn't meant to sustain a long network connection. I poked through the BluetoothChat sample application and it didn't use a Service. Would a Service be the right thing to use then, or should I implement it with threads like the sample application does? The only reason I need a long connection is to listen for any error reports from the server. The other network stuff only happens when the user is directly using the app. I will have to use threads anyways because a Service runs in the same thread as the activity that calls it, but I guess my main question is whether I should scrap the Service part. Right now I have a basic Service set up that can handle messages sent to it and it seems really easy to use. The documentation on it is just all over the place, there needs to be a section saying "If you want to do X, then this is suggested!"

0 投票
2 回答
1932 浏览

android - Android:“更改/拦截网络设置和流量”权限

某些 Android 应用程序中列出了“更改/拦截网络设置和流量”权限,例如:https ://play.google.com/store/apps/details?id=com.nqmobile.antivirus20&hl=en

但是从最新的android权限文档:https ://developer.android.com/reference/android/Manifest.permission.html根本没有这样的权限。

我正在尝试构建一个应用程序来监控/拦截/更改Android中的网络流量,是否可以在不生根设备的情况下做到这一点?TIA。

0 投票
1 回答
1129 浏览

android - 下载图像在 android 应用程序中损坏

只是我需要下载图像,但问题是图像损坏了!!!我找到了很多下载图像的方法,但仍然出现了这个问题。

我试着这样做:

我认为它只是从图像中读取了一些行!!!!

0 投票
4 回答
34502 浏览

android - 如何获得 IPV4 格式的 IP_ADDRESS

我正在尝试获取设备的 IP 地址,即使用 WIFI 或 3G 连接。我得到了无法理解的 IPV6 格式的 IP 地址。我想要 IPV4 格式的 IP 地址。我已经完成了 google,但找到了任何合适的解决方案。

这是我用来获取设备IP地址的代码

我得到这个输出:

它应该像这样显示:

请帮帮我..