2013-04-17 13 views
7

Tôi đang cố gắng xóa mạng wifi của mình theo chương trình - tuy nhiên dường như tôi không thể xóa nó/quên kết nối wifi hiện đang kết nối. Điều này sẽ là một nhiệm vụ khá đơn giản - vì vậy tôi không chắc chắn chính xác những gì tôi đang làm sai.Android - Không thể xóa mạng wifi theo cách lập trình- Phương thức removeNetwork (int) trong loại WifiManager không áp dụng cho các đối số (String)

Tôi đang sử dụng bài StackOverflow sau đây là một ví dụ:

How to forget a wireless network in android programmatically?

 public class KillTimer extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.killtimer); 
     WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); 
     wifiManager.getConnectionInfo().getSSID() 
     wifiManager.getConnectionInfo().getNetoworkId(); 
     wifiManager.removeNetwork(wifiConfig.networkId); 
     wifiManager.saveConfiguration(); 

    }} 

Trả lời

8

removeNetwork() chỉ mất các thông số số nguyên. networkSSID là giá trị chuỗi. Đó là nguyên nhân gây ra lỗi. Tôi thấy rằng bạn đang sử dụng SSID là một chuỗi. Bạn phải cung cấp id mạng là số nguyên. Bạn có thể thử getConnectionInfo().getSSID() và so sánh với số ssid của bạn, nếu chúng giống nhau, bạn có thể thử nhận được getConnectionInfo().getNetoworkId() nên cung cấp id mạng của mạng được kết nối mà bạn có thể sử dụng để removeNetwork.

Hãy thử điều này:

public class KillTimer extends Activity { 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.killtimer); 
      WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); 
      int networkId = wifiManager.getConnectionInfo().getNetworkId(); 
      wifiManager.removeNetwork(networkId); 
      wifiManager.saveConfiguration(); 
     }} 
+0

Tôi thực sự không cần phải cứng mã một SSID cụ thể phải được loại bỏ - Tôi chỉ đơn giản muốn loại bỏ bất cứ SSID hiện đang kết nối. Tôi đã cập nhật mã nguồn của mình ở trên (tôi đã bỏ qua phần bạn đã đề cập để tạo ra để so sánh chúng - vì tôi chỉ muốn ngắt kết nối bất kỳ cái nào được kết nối) Bạn có thể xem và xem liệu việc triển khai hiện tại của tôi có đúng với bạn không? –

+0

[Tôi thực sự đánh giá cao sự giúp đỡ của bạn với điều này!] –

+0

Bạn đã nhận được hầu hết các quyền của nó. Hãy thử mã trong câu trả lời đã chỉnh sửa – jaga

2
private void RemoveWifiNetworks() { 

    WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); 

    List<WifiConfiguration> list = wifiManager.getConfiguredNetworks(); 
    for (WifiConfiguration i : list) { 
     //int networkId = wifiManager.getConnectionInfo().getNetworkId(); 
     wifiManager.removeNetwork(i.networkId); 
     wifiManager.saveConfiguration(); 
    } 

} 
Các vấn đề liên quan