2014-10-18 58 views
0

我有我的Android应用程序,但我不能得到它我不能让互联网上我的Android应用

互联网连接,这是我AndroidManifest

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.onscreenapp.app" > 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <activity 
     android:name="com.example.onscreenapp.app.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

,从而你可以看到,我有权限。

,我试图用2个功能上网查状态

一个是这一个:

public boolean isInternetAvailable() { 
    try { 
     InetAddress ipAddr = InetAddress.getByName("google.com"); //You can replace it with your name 

     if (ipAddr.equals("")) { 
      return false; 
     } else { 
      return true; 
     } 

    } catch (Exception e) { 
     return false; 
    } 

} 

返回假的,而另一个是这一个:

public final boolean isInternetOn() { 

    // get Connectivity Manager object to check connection 
    ConnectivityManager connec = 
      (ConnectivityManager)getSystemService(getBaseContext().CONNECTIVITY_SERVICE); 

    // Check for network connections 
    if (connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTED || 
      connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTING || 
      connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTING || 
      connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTED) { 

     // if connected with internet 

     Toast.makeText(this, " Connected ", Toast.LENGTH_LONG).show(); 
     return true; 

    } else if (
      connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.DISCONNECTED || 
        connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.DISCONNECTED ) { 

     Toast.makeText(this, " Not Connected ", Toast.LENGTH_LONG).show(); 
     return false; 
    } 
    return false; 
} 

我正在通过Android S4 mini上的设备测试这个应用程序,当我编译它并启动它时,我得到“appname has stopped”,显示出运行时错误。

+2

始终显示您的logacat.So,我们可以纠正您的问题! – goonerDroid 2014-10-18 07:57:22

+0

发布您的日志详细信息 – MOSO 2014-10-18 07:57:30

+1

在“应用程序”标记 – Rustam 2014-10-18 08:04:47

回答

1

下面放线menifest不是在应用

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
+0

之前放置您的许可,他已经做到了! – goonerDroid 2014-10-18 08:04:08

+0

你会怎么知道? – 2014-10-18 08:04:57

+0

Bro检查他把这个问题放在应用程序标记中的问题....你见过 – 2014-10-18 08:06:40

0
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.stackoverflowandroid" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="21" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 

    <activity 
     android:name="com.example.onscreenapp.app.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

</manifest> 


---------- 
    public static boolean isInternetAvailable(Context c) { 
     boolean haveConnectedWifi = false; 
     boolean haveConnectedMobile = false; 

     ConnectivityManager cm = (ConnectivityManager) c 
       .getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo[] netInfo = cm.getAllNetworkInfo(); 
     for (NetworkInfo ni : netInfo) { 
      if (ni.getTypeName().equalsIgnoreCase("WIFI")) 
       if (ni.isConnected()) 
        haveConnectedWifi = true; 
      if (ni.getTypeName().equalsIgnoreCase("MOBILE")) 
       if (ni.isConnected()) 
        haveConnectedMobile = true; 
     } 
     return haveConnectedWifi || haveConnectedMobile; 
    } 

使用上面的清单和Connectionavailable代码

0

的isInternetAvailable()方法返回false。因此,这意味着,虽然您已连接到网络,您将无法访问互联网,因为下面的代码行:

InetAddress ipAddr = InetAddress.getByName("google.com"); 

基本上是一个ping到谷歌。

请发布logcat以期待更好的帮助。

P.S. - 你也可以在这里参考@ Squonk的回答:Detect whether there is an Internet connection available on Android

0

对不起,延期回复,但看这个问题,因为我有我的应用程序运行在4.4 Android平板电脑上和我的日志猫它显示的东西与查询互联网连接方法的代码有误。所以我删除了以下行,我已经用双斜线将它们评论出来,现在我的应用程序可以正常工作。也许这种情况下,你必须这样做。希望它对你有用,就像它对我一样。下面是代码...

//A method that checks to see if the Users phone is connected to the internet or not 
    public boolean isConnetedToInternetOrNot() { 

      // get Connectivity Manager object to check connection 

     connec = (ConnectivityManager)getSystemService(getBaseContext().CONNECTIVITY_SERVICE); 

     if (
      //connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTED //|| 
      // connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTING //|| 
      // connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTING || 
      connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTED 

      ) { 

      return true; 

     } else { 

      return false; 

     } 
    } 
0

把这个代码在你AndroidManifest XML文件:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
相关问题