概述和问题
在没有互联网的情况下连接到WiFi设备并使用仍然连接的WiFi设备切换到移动数据应用程序看不到SSID
WiFi设备广播SSID并向Android手机发出IP。 WiFi设备没有Internet但是分配了IP。我将移动数据用于互联网。当我连接到没有互联网的WiFi设备时,当通过WiFi无法访问互联网时,它会自动切换到移动数据。我加载应用程序,它崩溃了。当我禁用移动数据时,我可以加载应用程序而没有任何问题。问题与getAllNetworkInfo被弃用有关吗?我加载应用程序时遇到的错误来自我的MainActivity.java(please_connect_to_cam_wifi)。
似乎正在发生的事情是当移动设备启用时会丢失CurrentAPSSID()并且当加载应用程序并查找wifiInfo.getSSID()时。我试过添加getActiveNetworkInfo()。
globalVariables.getCurrentAPSSID()位于我的四个活动中。不应该修改GlobalVariables.java文件吗?
问题不在于移动设备和互联网正在通过wifiInfo.getSSID(),以便onResume在启用移动设备后看到它。任何人都可以协助解决这个问题三江源
**************************** MainActivity ****************** ****************
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "+ onResume +");
if (!globalVariables.getCurrentAPSSID().equals(MyConfig.SPACE)) {
startProgress(getResources().getString(R.string.progress_message_check));
setupModel.setWifiCountDown(0);
handlerCheckSmpDevice.postDelayed(runnableCheckSmpDevice, 10000);
}else {
if (MyConfig.NEW_TEST_WIFI) {
startProgress(getResources().getString(R.string.progress_message_scan));
globalVariables.scanWifi();
handlerScanWifi.postDelayed(runnableScanWifi, 5000);
}else {
toSomethingErrorViewWithMessage(mContext,
getResources().getString(R.string.msg_please_connect_to_cam_wifi));
}
}
isOff = false;
}
以下代码位于我的GlobalVariables.java中。
下面的代码******** GlobalVariables.java *************** ********** / ** *获取当前连接AP ssid * @return AP ssid字符串 * / public String getCurrentAPSSID(){
String result = "";
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if (wifiInfo != null) {
String ssid = wifiInfo.getBSSID();
if (ssid != null) {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
Log.d(TAG, "networkInfo: "+networkInfo);
if (networkInfo.isConnected()) {
result = wifiInfo.getSSID().replace("\"", "");
}
}
}
Log.d(TAG, "wifiInfo.getSSID(): "+result);
if (!result.equals("")) {
tempSsid = result;
}
return result;
************************* getActiveNetworkInfo ********************* **********
getActiveNetworkInfo();
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null) { // connected to the internet
if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
// connected to wifi
Toast.makeText(context, activeNetwork.getTypeName(), Toast.LENGTH_SHORT).show();
} else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
// connected to the mobile provider's data plan
Toast.makeText(context, activeNetwork.getTypeName(), Toast.LENGTH_SHORT).show();
}
} else {
// not connected to the internet
}