0
我正試圖編寫一個android軟件,它會自動連接到我的大學熱點。檢查是否登錄到熱點
現在,我想知道我是否在當地的熱點或實際上在互聯網上。 我的方法是嘗試解決像「http://google.com」這樣的網站。 如果返回的IP是本地的,我知道我在熱點(但可能不是好的),這要歸功於本地DNS。如果IP是外部的,我會認爲它是谷歌的。但是,我不知道是不是因爲我的大學防火牆,但是當我試圖解決任何主機時,它說:「無法解析主機」http://google.com「:沒有與主機名關聯的地址」 。
這裏是我的代碼:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = (TextView) findViewById(R.id.tv);
WifiManager wm = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
WifiInfo wi = wm.getConnectionInfo();
new Thread(new Runnable() {
@Override
public void run() {
String hostName = "http://google.com";
InetAddress hostInetAddress;
try {
hostInetAddress = InetAddress.getByName(hostName);
} catch(UnknownHostException e) {
e.printStackTrace();
}
}
}).start();
wm.getDhcpInfo();
String toto = wm.getDhcpInfo().toString();
}
這裏是我的清單:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test"
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_WIFI_STATE"/>
<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=".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>
謝謝你,但它不工作,當我連接到網絡但未登錄時ged-in,它返回true。 – Nicoscolat 2014-12-03 21:50:06
它確實是什麼方法說 - 如果連接返回一個布爾值。什麼不工作? – Martin 2014-12-04 20:24:13
我想檢查我是否登錄了網絡。我們必須在網頁上輸入我們的ID /密碼才能完全訪問互聯網。換句話說,如果我想轉到stackoverflow.com並且我沒有連接,我將被重定向到loggon網頁。在Windows或Android中,我收到一條通知,告訴我必須登錄。我想檢查我是否已登錄 – Nicoscolat 2014-12-04 23:46:50