我正在用Unity和Tango SDK開發一個Tango應用程序,但是,我需要能夠檢查設備的Wifi連接並相應地連接到Wifi網絡。由於這一點,我開始研究Android Unity網絡插件,但我在檢查設備的連接性時遇到麻煩;即使Wifi已打開且設備已連接至Wifi網絡,getActiveNetwork仍會返回空值。Android getActiveNetwork總是返回null
我花了幾天的時間搜索解決方法或替代實現,但找不到任何可行的代碼,下面是我查看了許多Android連接相關後用於執行檢查的代碼我看過的問題以及我在清單中使用的所有權限。
(我想指出的是,目前我正在返回一個整數爲手段,以快速調試功能時,通過Unity C#腳本調用,而現在該函數總是返回0)
public int IsConnectedToWifi(){
//SCCActivity activity = new SCCActivity();
ConnectivityManager cm = (ConnectivityManager) this.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
if(cm == null) return -2;
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null) { // connected to the internet
if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
// connected to wifi
DebugToast(activeNetwork.getTypeName());
return 1;
//return activeNetwork.isConnected();
} else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
// connected to the mobile provider's data plan
DebugToast(activeNetwork.getTypeName());
return 2;
//return false;
}
}
else {
DebugToast("There is no active Network");
return 0;
//return false;
}
DebugToast("Failed to get a Connectivity Manager");
return -1;
//return false;
}
在AndroidManifest文件中:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
我真的很感激任何建議或指導,謝謝。
嘿,謝謝你的回覆!我只是測試了代碼,但結果相同,即使設備連接到網絡,getActiveNetworkInfo仍然返回null,並且由於nf始終爲空,函數也會返回false。 – Geoab
@Geoab您在模擬器或真實設備中檢查!你連接到WIFI? – AJay
我正在檢查真實設備,並且設備已連接到WIFI – Geoab