smark
smark
  • 发布:2015-11-03 17:45
  • 更新:2019-10-10 17:34
  • 阅读:42925

Android 获取WIFI列表

分类:Native.js

后续补充:
1、获取WIFI列表

function loadWifiInfo(){  
    var Context = plus.android.importClass("android.content.Context");  
    var WifiManager = plus.android.importClass("android.net.wifi.WifiManager")  
    var wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);  
    var List = plus.android.importClass("java.util.List");  
    var ArrayList = plus.android.importClass("java.util.ArrayList");  
    var ScanResult = plus.android.importClass("android.net.wifi.ScanResult");     
    var wifis = new ArrayList();  
    wifis = wifiManager.getScanResults();  
    return wifis;  
}
2015-11-03 17:45 1 条评论 负责人:无 分享
已邀请:
npulife

npulife

能不能把实现这个功能的其他操作也介绍一下?

NewsNing

NewsNing - 天行键

补充一下

                // 主窗体  
                var MainActivity = plus.android.runtimeMainActivity()  
                // 上下文  
                var Context = plus.android.importClass('android.content.Context')  
                // 导入WIFI管理 和 WIFI 信息 的class  
                plus.android.importClass("android.net.wifi.WifiManager")  
                plus.android.importClass("android.net.wifi.WifiInfo")  
                plus.android.importClass("android.net.wifi.ScanResult")  
                plus.android.importClass("java.util.ArrayList")  
                // 获取 WIFI 管理实例  
                var wifiManager = MainActivity.getSystemService(Context.WIFI_SERVICE)  

                // 获取当前连接WIFI的信息  
                //var info = wifiManager.getConnectionInfo()  
                // 获取当前 WIFI 连接的 SSID (WIFI 名称)  
                //var ssid = info.getSSID()  
                // 这里的 获取到的名称 是 带 双引号的 如 "cmcc"    
                // 所以我们这里处理一下  
                //ssid = ssid.replace(/(^\"*)|(\"*$)/g, "")  

                var resultList = wifiManager.getScanResults(),  
                    len = resultList.size()  

                for(var i = 0; i < len; i++) {  
                    console.log(resultList.get(i).plusGetAttribute('SSID'))  
                }

具体 android.net.wifi.ScanResult 说明 http://blog.csdn.net/male09/article/details/70792657

  • 1***@qq.com

    大佬,有没有获取自己热点信息的方法

    2017-09-26 21:53

无极互联

无极互联

请教 ios wifi列表可以获取到吗

  • smark (作者)

    如果iOS提供了相应的api应该可以通过native实现的

    2015-11-05 09:07

  • 蔡繁荣

    回复 smark:能否提供Android原生版本呢?有个对比,好学习其中的不同,方便参考

    2016-01-22 23:01

  • 2***@qq.com

    var _plus = plus;

    if ($.os.ios) {

    _plus.runtime.openURL('prefs:root=WIFI');

    } else if ($.os.android) {

    var main = _plus.android.runtimeMainActivity(), //获取应用主Activity实例对象

    Intent = _plus.android.importClass("android.content.Intent"),//导入Java类对象

    mIntent = new Intent('android.settings.WIFI_SETTINGS');

    main.startActivity(mIntent);

    } else {

    _plus.nativeUI.alert("未知的操作系统类型!", function() {}, "系统提示");

    }

    2016-09-08 15:15

无极互联

无极互联

var WifiManager = plus.android.importClass("android.net.wifi.WifiManager")

这句话不支持三星部分手机

Uncaught SyntaxError: Unexpected identifier 提示这个错误

  • wHolmes1992

    这句话好像少了一个分号吧

    2017-02-23 16:07

w***@163.com

w***@163.com

请教 smark , ios wifi列表 怎么获取到呢

1***@qq.com

1***@qq.com

请教一下,我无论使用最上面的方法还是下面改良的方法,getScanResults()返回的都是null,无法获得当前可连接的WiFi列表,是什么原因?系统的氢os公测11版,安卓版本7.1.1

function loadWifiInfo(){  
            // 主窗体  
            var MainActivity = plus.android.runtimeMainActivity();  
            // 上下文  
            var Context = plus.android.importClass('android.content.Context');  
            // 导入WIFI管理 和 WIFI 信息 的class  
            plus.android.importClass("android.net.wifi.WifiManager");  
            plus.android.importClass("android.net.wifi.WifiInfo");  
            plus.android.importClass("android.net.wifi.ScanResult");  
            plus.android.importClass("java.util.ArrayList");  
            // 获取 WIFI 管理实例  
            var wifiManager = MainActivity.getSystemService(Context.WIFI_SERVICE);  

            // 获取当前连接WIFI的信息  
            //var info = wifiManager.getConnectionInfo()  
            // 获取当前 WIFI 连接的 SSID (WIFI 名称)  
            //var ssid = info.getSSID()  
            // 这里的 获取到的名称 是 带 双引号的 如 "cmcc"    
            // 所以我们这里处理一下  
            //ssid = ssid.replace(/(^\"*)|(\"*$)/g, "")  
            wifiManager.setWifiEnabled(true);//打开wifi,false为关闭  
            wifiManager.startScan();//开始扫描  
            var resultList = wifiManager.getScanResults();  
            console.log(resultList);  
            var len = resultList.size();  

            for(var i = 0; i < len; i++) {  
                console.log(resultList.get(i).plusGetAttribute('SSID'));  
            }  
        }
  • 毅墨

    android 7以上,获取wifi都需要添加两个位置权限

    2017-08-18 17:06

1***@163.com

1***@163.com - 前端攻城狮

华为android 9以上 无法获取ssid 以及WIFI列表

  • 1***@163.com

    我已经添加了两个位置信息,ssid显示<unknown ssid> 列表显示 []

    2019-06-04 16:44

  • 5***@qq.com

    回复 1***@163.com: 可以拿到 加个打开定位权限 和 wifi授权 ios也集成插件了

    2019-06-06 11:12

DCloud_heavensoft

DCloud_heavensoft

阁楼庭院

阁楼庭院 - 80后IT

现在uni-app已经用这个方法获取不到了

3***@qq.com

3***@qq.com - 中午要休息

安卓9.0各位大佬有解决方法么?

该问题目前已经被锁定, 无法添加新回复