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
Trả lời
Bạn đã thử sử dụng WifiInfo.getSSID()
?
http://developer.android.com/reference/android/net/wifi/WifiInfo.html#getSSID%28%29
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
Tài liệu này cho biết rằng hàm này trả về SSID của mạng _current_. –
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
Bạn có thể sử dụng WifiManager và WifiInfo để 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>
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
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
Không hoạt động trên Android 8.1. '# dumpsys wifi | grep mWifiInfo' cung cấp cho 'mWifiInfo SSID:
Ở đâ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.
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
@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. –
alright cảm ơn ngay bây giờ tôi đã nhận nó. : D – gumuruh
Kiểm tra qua NetworkInfo cho loại wifi nếu được kết nối. Và sau đó sử dụng wifiinfo getSSid(). Bạn có thể muốn loại bỏ dấu gạch chéo kép từ SSID returnd
https://play.google.com/store/apps/details?id=com.connect.freewifi
Bạn nên kiểm tra ứng dụng và phát triển api này từ http://developer.android.com/reference/android/net/wifi/WifiInfo.html
Nó sẽ giúp bạn với nhiệm vụ của bạn.
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
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)? –
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
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) –