WiFi 도구 클래스 연결

11948 단어 wifi
 1 public class WifiConnect {

 2 

 3     WifiManager wifiManager;

 4 

 5     //     

 6     public WifiConnect(WifiManager wifiManager) {

 7         this.wifiManager = wifiManager;

 8     }

 9 

10     //

11     public boolean Connect(String SSID, String Password, int Type) {

12 

13         WifiConfiguration wifiConfig = this

14                 .CreateWifiInfo(SSID, Password, Type);

15 

16         WifiConfiguration tempConfig = this.IsExsits(SSID);

17         if (tempConfig != null) {

18             wifiManager.removeNetwork(tempConfig.networkId);

19         }

20 

21         int netID = wifiManager.addNetwork(wifiConfig);

22         boolean flag = wifiManager.enableNetwork(netID, true);

23         return flag;

24     }

25 

26     //               

27     private WifiConfiguration IsExsits(String SSID) {

28         List<WifiConfiguration> existingConfigs = wifiManager

29                 .getConfiguredNetworks();

30         for (WifiConfiguration existingConfig : existingConfigs) {

31             if (existingConfig.SSID.equals("\"" + SSID + "\"")) {

32                 return existingConfig;

33             }

34         }

35         return null;

36     }

37 

38     //   WifiConfiguration

39     public WifiConfiguration CreateWifiInfo(String SSID, String Password,

40             int Type) {

41         WifiConfiguration config = new WifiConfiguration();

42         config.allowedAuthAlgorithms.clear();

43         config.allowedGroupCiphers.clear();

44         config.allowedKeyManagement.clear();

45         config.allowedPairwiseCiphers.clear();

46         config.allowedProtocols.clear();

47         config.SSID = "\"" + SSID + "\"";

48 

49         WifiConfiguration tempConfig = this.IsExsits(SSID);

50         if (tempConfig != null) {

51             wifiManager.removeNetwork(tempConfig.networkId);

52         }

53 

54         if (Type == 1) // WIFICIPHER_NOPASS

55         {

56             config.wepKeys[0] = "";

57             config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);

58             config.wepTxKeyIndex = 0;

59         }

60         if (Type == 2) // WIFICIPHER_WEP

61         {

62             config.hiddenSSID = true;

63             config.wepKeys[0] = "\"" + Password + "\"";

64             config.allowedAuthAlgorithms

65                     .set(WifiConfiguration.AuthAlgorithm.SHARED);

66             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);

67             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);

68             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);

69             config.allowedGroupCiphers

70                     .set(WifiConfiguration.GroupCipher.WEP104);

71             config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);

72             config.wepTxKeyIndex = 0;

73         }

74         if (Type == 3) // WIFICIPHER_WPA

75         {

76             config.preSharedKey = "\"" + Password + "\"";

77             config.hiddenSSID = true;

78             config.allowedAuthAlgorithms

79                     .set(WifiConfiguration.AuthAlgorithm.OPEN);

80             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);

81             config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);

82             config.allowedPairwiseCiphers

83                     .set(WifiConfiguration.PairwiseCipher.TKIP);

84             // config.allowedProtocols.set(WifiConfiguration.Protocol.WPA);

85             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);

86             config.allowedPairwiseCiphers

87                     .set(WifiConfiguration.PairwiseCipher.CCMP);

88             config.status = WifiConfiguration.Status.ENABLED;

89         }

90         return config;

91     }

92 

93 }

좋은 웹페이지 즐겨찾기