PDA

View Full Version : اتصال به دستگاه وای فای جدید



ronix3
چهارشنبه 24 خرداد 1396, 13:59 عصر
سلام
من می خوام به یه دستگاه وای فای وصل بشم ولی نمی دونم چرا نمی تونم جواب بگیرم

بدون هیچ مشکلی اجرا می شه و پیام in رو نمایش می ده ولی saved رو نه

ListView wifilist;
ListView iplist;
WifiManager wifimanager;
String wifi_spots[];
//WifiScanner wifiScanner;
int size=0;
List<ScanResult> results;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

wifilist =(ListView)findViewById(R.id.listview);
iplist=(ListView)findViewById(R.id.listview2);

wifimanager = (WifiManager)getSystemService(Context.WIFI_SERVICE );
if(wifimanager.isWifiEnabled()==false)
wifimanager.setWifiEnabled(true);
wifimanager.startScan();
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
results = wifimanager.getScanResults();
size = results.size();
}
},new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_AC TION));



Button bu=(Button)findViewById(R.id.butt);
bu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(results!=null)
Connect("I37D0-W-Ronix3-PC","84273333");
else
{
AlertDialog a = new AlertDialog.Builder(MainActivity.this).create();
a.setMessage("is null");
a.show();
}
}
});

Button get=(Button)findViewById(R.id.butt1);
get.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
WifiConfiguration c=new WifiConfiguration();
AlertDialog ad=new AlertDialog.Builder(MainActivity.this).create();
ad.setMessage(wifimanager.getConfiguredNetworks()+"");
ad.show();
}
});

// wifiScanner=new WifiScanner();


wifilist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, final View view, final int position, final long id) {


String netpass = "84273333";


}


});
}

public String getScanResultSecurity(ScanResult res)
{
final String cap = res.capabilities;
final String[] securityModes = {"WEP","PSK","EAP"};
for(int i=securityModes.length-1; i>=0;i--)
{
if(cap.contains(securityModes[i]))
return securityModes[i];
}
return "OPEN";
}

public void Connect(String SSID,String Pass) {
try {
String ssid = "\"" + SSID + "\"";
String pass = "\"" + Pass + "\"";

for (ScanResult result : results) {
if (result.SSID.equals(SSID)) {


String security = getScanResultSecurity(result);
if (security.equals("PSK")) {

WifiConfiguration con = new WifiConfiguration();
con.SSID = ssid;
AlertDialog a = new AlertDialog.Builder(MainActivity.this).create();
a.setMessage("in");
a.show();

con.preSharedKey = pass;
con.hiddenSSID = true;
con.status = WifiConfiguration.Status.ENABLED;
con.allowedGroupCiphers.set(WifiConfiguration.Grou pCipher.TKIP);
con.allowedGroupCiphers.set(WifiConfiguration.Grou pCipher.CCMP);
con.allowedKeyManagement.set(WifiConfiguration.Key Mgmt.WPA_PSK);
con.allowedPairwiseCiphers.set(WifiConfiguration.P airwiseCipher.TKIP);
con.allowedPairwiseCiphers.set(WifiConfiguration.P airwiseCipher.CCMP);
con.allowedKeyManagement.set(WifiConfiguration.Key Mgmt.NONE);
con.allowedProtocols.set(WifiConfiguration.Protoco l.RSN);
con.allowedProtocols.set(WifiConfiguration.Protoco l.WPA);

int ntid = wifimanager.addNetwork(con);

wifimanager.disconnect();
wifimanager.enableNetwork(ntid,true);
wifimanager.reconnect();
boolean b = wifimanager.saveConfiguration();
if (ntid != -1 && b) {

AlertDialog a2 = new AlertDialog.Builder(MainActivity.this).create();
a2.setMessage("saved");
a2.show();
}
}

}
}
catch (Exception ex) {
AlertDialog a = new AlertDialog.Builder(MainActivity.this).create();
a.setMessage(ex.getMessage());
a.show();
}
}

ronix3
شنبه 27 خرداد 1396, 19:28 عصر
مشکل از متد connect هستش و شبکه جدید درست کانفیگ نمی شه فقط نمی دونم چرا تو stackoverflow کلی تاپیک در این مورد هست و بیشتر از ۲۰ تا رو بررسی کردم و همشونو جمع بندی کردم رسید به این ولی نمی دونم چرا باز جواب نمی ده try catch هم که بر می دارم اصلا ارور نمی ده که بفهمم مشکل از کجاست

public void Connect(String SSID,String Pass) {
try {
String ssid = "\"" + SSID + "\"";
String pass = "\"" + Pass + "\"";

for (ScanResult result : results) {
if (result.SSID.equals(SSID)) {


String security = getScanResultSecurity(result);
if (security.equals("PSK")) {

WifiConfiguration con = new WifiConfiguration();
con.SSID = ssid;
AlertDialog a = new AlertDialog.Builder(MainActivity.this).create();
a.setMessage("in");
a.show();

con.preSharedKey = pass;
con.hiddenSSID = true;
con.status = WifiConfiguration.Status.ENABLED;
con.allowedGroupCiphers.set(WifiConfiguration.Grou pCipher.TKIP);
con.allowedGroupCiphers.set(WifiConfiguration.Grou pCipher.CCMP);
con.allowedKeyManagement.set(WifiConfiguration.Key Mgmt.WPA_PSK);
con.allowedPairwiseCiphers.set(WifiConfiguration.P airwiseCipher.TKIP);
con.allowedPairwiseCiphers.set(WifiConfiguration.P airwiseCipher.CCMP);
con.allowedKeyManagement.set(WifiConfiguration.Key Mgmt.NONE);
con.allowedProtocols.set(WifiConfiguration.Protoco l.RSN);
con.allowedProtocols.set(WifiConfiguration.Protoco l.WPA);

int ntid = wifimanager.addNetwork(con);

wifimanager.disconnect();
wifimanager.enableNetwork(ntid,true);
wifimanager.reconnect();
boolean b = wifimanager.saveConfiguration();
if (ntid != -1 && b) {

AlertDialog a2 = new AlertDialog.Builder(MainActivity.this).create();
a2.setMessage("saved");
a2.show();
}
}

}
}
catch (Exception ex) {
AlertDialog a = new AlertDialog.Builder(MainActivity.this).create();
a.setMessage(ex.getMessage());
a.show();
}
}

ronix3
سه شنبه 30 خرداد 1396, 22:12 عصر
آقا ۸۰ نفر دیدن نظری پیشنهادی چیزی گیج شدم که چیکار کنم