首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android HTTP连接

Android HTTP连接
EN

Stack Overflow用户
提问于 2009-01-14 10:11:50
回答 2查看 19.9K关注 0票数 18

谁能告诉我为什么这在Android模拟器中不起作用?我可以从浏览器访问,而服务器是内部的。我所能想到的是,我的应用程序上缺少一些配置,这样它就可以访问网络层。

代码语言:javascript
复制
try {
    InetAddress server = Inet4Address.getByName("thehost");
    //Doesn't work either
    //or InetAddress server2 = Inet4Address.getByAddress(new String("192.168.1.30").getBytes());

    if(server.isReachable(5000)){
        Log.d(TAG, "Ping!");
    }

    Socket clientsocket = new Socket(server, 8080);
} catch (UnknownHostException e) {
    Log.e(TAG, "Server Not Found");
} catch (IOException e) {
    Log.e(TAG, "Couldn't open socket");
}

抛出UnknownHostException

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-01-14 10:58:28

就配置而言,您需要从应用程序访问Internet的唯一设置是INTERNET权限,可通过在应用程序清单中的application标记之外添加以下行来启用该权限。

代码语言:javascript
复制
<uses-permission android:name="android.permission.INTERNET" />

因此,清单将遵循以下通用结构

代码语言:javascript
复制
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.apis">    
  <uses-permission android:name="android.permission.INTERNET" />
  <application 
    android:name="MyApplication"    
    android:label="@string/application_title"
    android:icon="@drawable/my_icon">
    [ .. Your Activities go here ]
  </application>
</manifest>
票数 32
EN

Stack Overflow用户

发布于 2009-10-02 11:23:03

由于超时,它可能仍然无法工作。因为您需要根权限才能发送ICMP包,而isReachable的实现将使用ECHO的慢速TCP版本。Chekcout javaDoc

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/442496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档