2011-09-29 23 views
18

Tôi gặp sự cố không thể tìm thấy điểm phát sóng wifi của mình ssid trong hệ thống Android của mình.
Tôi tìm thấy nhiều thông tin từ google, nhưng không có gì hữu ích.
Hãy giúp tôi giải quyết.Cách nhận điểm phát sóng wifi của tôi ssid trong hệ thống Android hiện tại của tôi

+0

bạn đã làm gì cố gắng cho đến nay, ngoài tìm kiếm Google không kết quả? Bạn đã xem qua [tài liệu API WifiManager] chưa (http://developer.android.com/reference/android/net/wifi/WifiManager.html)? –

+0

Oh ~ API luôn nhận được kết nối ssid, không phải hệ thống hiện tại của tôi ssid – solar

+3

Chào mừng bạn đến với SO! Đây không phải là một diễn đàn; __đây là trang web câu hỏi và câu trả lời, và tôi e rằng bài đăng của bạn không thực sự là một câu hỏi, bởi vì [câu hỏi thực sự có câu trả lời, không phải các mục hoặc ý tưởng hoặc ý kiến] (http://blog.stackoverflow.com/2011/01 /real-questions-have-answers/).__ [Vui lòng đọc Câu hỏi thường gặp để biết thêm thông tin.] (http://www.stackoverflow.com/faq) –

Trả lời

0
+0

Tôi đã thử trước đây, nó chỉ có thể quét các điểm nóng wifi khác, không phải hệ thống android hiện tại của tôi ssid – solar

+0

Tài liệu này cho biết rằng hàm này trả về SSID của mạng _current_. –

+0

Tôi cần phải nhận được wifi hospot ssid mà tôi đặt trong hệ thống Android của tôi, không phải là kết nối hiện tại ssid trong mạng. – solar

53

Bạn có thể sử dụng WifiManagerWifiInfo để nhận Wifi SSID

WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); 
    WifiInfo wifiInfo = wifiManager.getConnectionInfo(); 
    Log.d("wifiInfo", wifiInfo.toString()); 
    Log.d("SSID",wifiInfo.getSSID()); 

Ngoài ra thêm Permission trong tập tin Manifest của bạn.

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"> 
                  </uses-permission> 
+2

Oh ~ phương pháp này tôi đã thử trước đây, nó chỉ có thể nhận được kết nối hiện tại của tôi ssid, nhưng không thể có được hotspot wifi của tôi ssid trong hệ thống android của tôi – solar

+0

tôi nghĩ rằng anh ta nên lưu ý rằng điều này có thể được làm việc chỉ khi anh bật WIfi của mình đầu tiên. – gumuruh

+0

Không hoạt động trên Android 8.1. '# dumpsys wifi | grep mWifiInfo' cung cấp cho 'mWifiInfo SSID: , BSSID: , MAC: ..., Trạng thái bổ sung: DISCONNECTED, RSSI: -127, Tốc độ liên kết: -1Mbps, Tần số: -1MHz, Net ID: -1, Gợi ý được đánh số: sai, điểm: 0' – Mygod

7

Ở đây: http://www.androidjavadoc.com/2.3/android/net/wifi/WifiManager.html là tài liệu đầy đủ về Trình quản lý Wifi.

Lưu ý rằng một số phương pháp chỉ có sẵn thông qua kiểm tra, cũng như phương pháp bạn cần getWifiApConfiguration.

WifiManager wifimanager = (WifiManager) getSystemService(WIFI_SERVICE); 
Method[] methods = wifimanager.getClass().getDeclaredMethods(); 
for (Method m: methods) {   
    if (m.getName().equals("getWifiApConfiguration")) { 
     WifiConfiguration config = (WifiConfiguration)m.invoke(wifimanager); 

      // here, the "config" variable holds the info, your SSID is in 
      // config.SSID 
    } 
} 

O và vì nội dung này được đánh dấu là ẩn, nó có thể thay đổi hoặc xóa hoàn toàn trong bất kỳ phiên bản Android nào trong tương lai. Vì vậy, không dựa vào nó quá nhiều vào các ứng dụng "chính thức", trừ khi bạn thực hiện điều đó rất rõ ràng.

+0

có ý nghĩa. Nhưng tôi tự hỏi. Làm thế nào chúng ta có thể thay đổi tên thiết bị của riêng mình? thông qua Cài đặt giao diện người dùng, chúng tôi biết, nhưng thông qua mã, bạn có đầu mối @BartFriederichs không? – gumuruh

+0

@gumuruh Tôi đã không quan tâm đến điều đó và có thể bằng cách đặt cấu hình. Sử dụng kiểm tra để nhận cuộc gọi phù hợp. Lưu ý rằng các phần của API có thể được thay đổi hoặc xóa bất kỳ lúc nào và phá vỡ ứng dụng của bạn. Sử dụng có nguy cơ của riêng bạn. –

+0

alright cảm ơn ngay bây giờ tôi đã nhận nó. : D – gumuruh

2
WifiConfiguration netConfig = new WifiConfiguration(); 


try{ 
    Method setWifiApMethod = wifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class); 
    boolean apstatus=(Boolean) setWifiApMethod.invoke(wifiManager, netConfig,true); 
    Method isWifiApEnabledmethod = wifiManager.getClass().getMethod("isWifiApEnabled"); 

    while(!(Boolean)isWifiApEnabledmethod.invoke(wifiManager)) 
    {} 

    Method getWifiApStateMethod = wifiManager.getClass().getMethod("getWifiApState"); 
    int apstate=(Integer)getWifiApStateMethod.invoke(wifiManager); 
    Method getWifiApConfigurationMethod = wifiManager.getClass().getMethod("getWifiApConfiguration"); 
    netConfig=(WifiConfiguration)getWifiApConfigurationMethod.invoke(wifiManager); 
    Log.e("CLIENT", "\nSSID:"+netConfig.SSID+"\nPassword:"+netConfig.preSharedKey+"\n"); 
} catch (Exception e) { 
    Log.e(this.getClass().toString(), "", e); 
} 

Mã này làm việc cho tôi

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