Я подключаюсь к сети wifi в своем приложении , и пока я делаю это, я показываю пользователю диалог с костюмом, в котором есть анимация.wifi Manager wifiManager.addNetwork Останавливает мой UI
проблема заключается в том, что в то время как я сделать эту линию>
wifiManager.addNetwork(conf);
моя анимация в прихвата и иногда мое приложение диалогового ПОЛУЧИТЬ идет не отвечает.
любая идея о том, как исправить это?
, и если я не могу показать диалог при подключении к сети, что вы предлагаете показывать пользователю?
это мой Подключение к сети функции в моем Wifi Упаковочный класса:
public void connectToNetwork(String ssidName, String netPassword, final Context applicationContext, final wifiConnectionEsteblishedInterface callback) { // in order to call callback from another thread it needs to be final
final String networkSSID = ssidName;
String networkPass = netPassword;
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "\"" + networkSSID + "\""; // Please note the quotes. String should contain
conf.preSharedKey = "\"" + networkPass + "\"";
WifiManager wifiManager = (WifiManager) applicationContext.getSystemService(Context.WIFI_SERVICE);
wifiManager.addNetwork(conf);
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for (WifiConfiguration i : list) {
if (i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
wifiManager.disconnect();
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
break;
}
}
Log.d("myLogs", "log-0");
callback.callbackFromWifi(); // calls the cllback
}
и это мой диалог слушателем
public void onClick(DialogInterface dialog, int id) { //on button clicked
mainDialog.show(); //show main dialog back again
loaderScreenMainText.setText("Connecting to RADWIN WiFi"); // shows on screen message
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// Do something after 5s = 5000ms
wifiWrapper WifiWrapper = new wifiWrapper();
WifiWrapper.toggleWiFi(Scanning_Barcode_Activity.this, true); // turns wifi ON
aligmentManager aligmentManager = new aligmentManager(); // tells the manager that we started looking for a wifi
aligmentManager.initlizedConnectingToWifi();
if (scanResults != null) { //in future use we will use scanResults veriable which is already initlized by now;
WifiWrapper.connectToNetwork("nmsRoom", "12345678", getApplication(), callbackFunctionForisWifiConnection); //in the future we will pass the scan results to the network
//
} else {
//do something in case scan result fails
}
}
}, 500); //deley in order to start the animation before hand (otherwise the dialog shows after, 2, 3 seconds
}
Thnx Allot, @Panel, вы знаете более простой способ, чем открыть AsyncTask для выполнения операции Wifi? –
Вы можете запустить новую тему, переопределить run() и скопировать код там. Не забудьте вызвать на нем start(). – Panel
THNX помогло выделить –