精华内容
下载资源
问答
  • iOS 获取wifi强度

    千次阅读 2016-11-30 20:24:54
    网上爬到的获取wifi强度方法。 可以获取wifi信号强度, 3, 2 ,1 // UIApplication *app = [UIApplication sharedApplication]; // NSArray *subviews = [[[app valueForKey:@"statusBar"] valueForKey:@...

    网上爬到的获取wifi强度方法。

    可以获取wifi信号强度, 3, 2 ,1

    //    UIApplication *app = [UIApplication sharedApplication];
    //    NSArray *subviews = [[[app valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];
    //    NSString *dataNetworkItemView = nil;
    //    
    //    for (id subview in subviews) {
    //        if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]]) {
    //            dataNetworkItemView = subview;
    //            break;
    //        }
    //    }
    //    
    //    int signalStrength = [[dataNetworkItemView valueForKey:@"_wifiStrengthBars"] intValue];
    //    
    //    NSLog(@"signal %d", signalStrength);

    展开全文
  • 获取手机信号强度,包括WiFi,2G,4G

    千次阅读 2019-11-27 15:42:38
    因为业务需要,获取手机主板的信号强度,包括WiFi,4G,2G。来验证当前主板模块是否是因为信号不好而导致问题,我去网上查询了几遍,将一些文章结合起来。最后获取到相关数据。以下是相关的操作步骤 1.加权限 ...

    因为业务需要,获取到手机主板的信号强度,包括WiFi,4G,2G。来验证当前主板模块是否是因为信号不好而导致问题,我去网上查询了几遍,将一些文章结合起来。最后获取到相关数据。以下是相关的操作步骤

     

    1.加权限

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    2.实例化TelephonyManager,建立起PhoneStatListener监听(主要是带SIM卡的状态监听),再注册一个NetWorkBroadCastReceiver监听。

    //获取telephonyManager
    mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    //开始监听
    mListener = new PhoneStatListener();
    mNetWorkBroadCastReciver = new NetWorkBroadCastReciver();
    IntentFilter intentFilter = new IntentFilter();
    intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
    intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
    intentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
    intentFilter.addAction(WifiManager.RSSI_CHANGED_ACTION);
    registerReceiver(mNetWorkBroadCastReciver, intentFilter);

     

    mTelephonyManager.listen(mListener, PhoneStatListener.LISTEN_SIGNAL_STRENGTHS);
    /**
     * 观察手机带SIM卡时的信号强度
     */
    private class PhoneStatListener extends PhoneStateListener {
        //获取信号强度
    
        @Override
        public void onSignalStrengthsChanged(SignalStrength signalStrength) {
            super.onSignalStrengthsChanged(signalStrength);
    
            signal=signalStrength;
            //网络信号改变时,获取网络信息
            getNetWorkInfo();
        }
    }
    //接收网络状态改变的广播
    class NetWorkBroadCastReciver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            getNetWorkInfo();
        }
    }
      /**
         * 获取网络的信息
         */
        private void getNetWorkInfo() {
            ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo info = connectivityManager.getActiveNetworkInfo();
            if (info != null && info.isAvailable()) {
                switch (info.getType()) {
                    case ConnectivityManager.TYPE_WIFI:
                        //wifi
                        WifiManager manager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
                        WifiInfo connectionInfo = manager.getConnectionInfo();
                        int rssi = connectionInfo.getRssi();
                        mTextView.setText("当前为wifi网络,信号强度=" + rssi);
                        break;
                    case ConnectivityManager.TYPE_MOBILE:
                        //移动网络,可以通过TelephonyManager来获取具体细化的网络类型
                        String netWorkStatus = isFastMobileNetwork() ? "4G网络" : "2G网络";
                        if (isFastMobileNetwork()){
                            try {
                                if (signal==null){
                                    Log.e("tiwolf", "getNetWorkInfo: signal为空" );
                                    return;
                                }
                             
                                Method method=signal.getClass().getMethod("getDbm");
                                mGsmSignalStrength= (int) method.invoke(signal);
                                if(mGsmSignalStrength>-90){
                                    Log.e("tiwolf", "getNetWorkInfo: 信号强度强" );
                                }else {
                                    Log.e("tiwolf", "getNetWorkInfo: 信号强度弱" );
                                }
                            } catch (NoSuchMethodException e) {
                                e.printStackTrace();
                            } catch (IllegalAccessException e) {
                                e.printStackTrace();
                            } catch (InvocationTargetException e) {
                                e.printStackTrace();
                            }
    
                        }else {
                            //获取网络信号强度
                            //获取0-4的5种信号级别,越大信号越好,但是api23开始才能用
    //            int level = signalStrength.getLevel();
                            if (signal==null){
                                Log.e("tiwolf", "getNetWorkInfo: signal为空" );
                                return;
                            }
                            mGsmSignalStrength = signal.getGsmSignalStrength();
                        }
                        mTextView.setText("当前为" + netWorkStatus + ",信号强度=" + mGsmSignalStrength);
                        Log.e("tiwolf", "当前为" + netWorkStatus + ",信号强度=" + mGsmSignalStrength );
                        break;
                }
            } else {
                mTextView.setText("没有可用网络");
            }
        }

    最后结束取消监听,取消注册

    mTelephonyManager.listen(mListener, PhoneStatListener.LISTEN_NONE);
    unregisterReceiver(mNetWorkBroadCastReciver);

     

    大体的就是这样子,后面有文档上传到csdn,有需要的可以去下载

     

     

     

     

     

     

    展开全文
  • WifiManager wm = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); 2、通过WifiManager对象获得wifi信息 WifiInfo info = wm.getConnectionInfo(); 3、通过WifiInfo获得wifi信...

    1、获得WifiManager对象

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

    2、通过WifiManager对象获得wifi信息

    WifiInfo info = wm.getConnectionInfo();
    

    3、通过WifiInfo获得wifi信息

    //通过wifi管理对象获得wifi信息
                            WifiInfo info = wm.getConnectionInfo();
                            //获取wifi名称
                            String ssid = info.getSSID().replace("\"", "");
                            //获取mac地址
                            String MacAddr = info.getMacAddress();
                            //获取当前连接速度
                            int linkSpeed = info.getLinkSpeed();
                            //获取ip地址
                            int ipAddr = info.getIpAddress();
                            ......
    

    xml代码

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="20dp"
        tools:context=".MainActivity">
    
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="SSID:"
            android:textColor="@android:color/black"
            android:textSize="30sp" />
    
        <TextView
            android:id="@+id/wifiSSID"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/textView1"
            android:text="-"
            android:textColor="@android:color/black"
            android:textSize="30sp" />
    
        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="信号强度"
            android:layout_below="@id/textView1"
            android:textColor="@android:color/black"
            android:textSize="30sp" />
    
        <ImageView
            android:id="@+id/ivWifi"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/textView2"
            android:background="@drawable/wifi1"/>
    
    </RelativeLayout>
    

    主函数代码

    import android.app.Activity;
    import android.content.Context;
    import android.net.wifi.WifiInfo;
    import android.net.wifi.WifiManager;
    import android.os.Handler;
    import android.os.Message;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
        private WifiManager wm;
        private TextView wifiSSID;
        private ImageView ivWifi;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initView();
            initWifi();
        }
    
        private void initView() {
            wifiSSID = findViewById(R.id.wifiSSID);
            ivWifi = findViewById(R.id.ivWifi);
        }
    
        Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                switch (msg.what) {
                    case 1:
                        wifiSSID.setText(msg.obj.toString());
                        if (msg.arg1 <= 50) {
                            ivWifi.setBackgroundResource(R.drawable.wifi4);
                        } else if (msg.arg1 <= 70) {
                            ivWifi.setBackgroundResource(R.drawable.wifi3);
                        } else if (msg.arg1 <= 100) {
                            ivWifi.setBackgroundResource(R.drawable.wifi2);
                        }
                        break;
                    case 2:
                        wifiSSID.setText("-");
                        ivWifi.setBackgroundResource(R.drawable.wifi1);
                        break;
                }
            }
        };
    
        private void initWifi() {
            Thread thread = new Thread() {
                @Override
                public void run() {
                    while (true) {
                        try {
                            sleep(1000);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        //拿到wifi管理对象
                        wm = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
                        if (wm.isWifiEnabled()) {
                            //通过wifi管理对象获得wifi信息
                            WifiInfo info = wm.getConnectionInfo();
                            //获取wifi名称
                            String ssid = info.getSSID().replace("\"", "");
                            //获取mac地址
                            String MacAddr = info.getMacAddress();
                            //获取当前连接速度
                            int linkSpeed = info.getLinkSpeed();
                            //获取ip地址
                            int ipAddr = info.getIpAddress();
    
                            Message msg = Message.obtain();
                            msg.what = 1;
                            msg.obj = ssid;
                            /**
                            *	getRssi()返回的是一个-100到0的数,直接取绝对值
                            *	-50到0表示信号好
                            *	-50到-70表示信号一般
                            *	-70到-100表示信号差
                            */
                            msg.arg1 = Math.abs(info.getRssi());
                            handler.sendMessage(msg);
                        } else {
                            Message msg = Message.obtain();
                            msg.what = 2;
                            handler.sendMessage(msg);
                        }
                    }
                }
            };
            thread.start();
        }
    
    
    }
    
    

    最后给权限

        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
    
    展开全文
  • 连接上当前的wifi以后,需要知道当前wifi的信号强度,就是wifiinfo.getRssi();这个方法,而rssi的范围为0到-100, WifiManager mWifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE); ...

    连接上当前的wifi以后,需要知道当前wifi的信号强度,就是wifiinfo.getRssi();这个方法,而rssi的范围为0到-100,

    WifiManager mWifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
                WifiInfo mWifiInfo = mWifiManager.getConnectionInfo();
                int wifi = mWifiInfo.getRssi();//获取wifi信号强度
                if (wifi > -50 && wifi < 0) {//最强
                    Log.e(TAG, "最强");
                } else if (wifi > -70 && wifi < -50) {//较强
                    Log.e(TAG, "较强");
                } else if (wifi > -80 && wifi < -70) {//较弱
                    Log.e(TAG, "较弱");
                } else if (wifi > -100 && wifi < -80) {//微弱
                    Log.e(TAG, "微弱");
                }
    

    这样就区分出来信号的强弱了

    展开全文
  • 直接封装了一个工具类,获取WIFI信号强度直接调用该工具类的getCurrentNetworkRssi方法即可。 public class WifiUtils { // 获取当前热点最新的信号强度 public static String getCurrentNetworkRssi(Context ...
  • 支持,win10及以下版本可以获取当前电脑获取的所有的WIFi列表,并且有选择的去链接对应的热点。
  • android 获取wifi和移动网络信号强度

    千次阅读 2020-06-02 10:59:55
    1. 获取wifi信号强度 可以直接监听广播 MyReceiver receiver = new RssiReceiver(); IntentFilter intentFilter = new IntentFilter(WifiManager.RSSI_CHANGED_ACTION); registerReceiver(receiver,intentFilter); ...
  • 关于检测手机信号,wifi信号强度以及获取周围wifi热点的一个小例子
  • iOS 获取wifi信号强度

    千次阅读 2016-10-28 17:43:15
    虽然各种直接获取信号强度的api都被封杀了。但是还有一个另类的黑魔法可以获取到。那就是遍历UIStatusBar了- (void)getSignalStrength{ UIApplication *app = [UIApplication sharedApplication]; NSArray *...
  • Android获取手机信号强度汇总

    万次阅读 热门讨论 2018-12-15 20:50:35
    前两天要做一个获取手机信号的小程序,于是在网上搜索了很多,就找到两种方法,遗憾的是都没跑通。正当本人山重水复疑无路之时,看到了第三种方法,赶紧试了一下——噢耶\(^o^)/成功啦!于是把这三种方法都整理下来...
  •     手机信号强度首先分为两部分,一个是WiFi信号强度,一个是蜂巢网络(数据流量)信号强度。     信号强度会返回一个dbm单位的数据,这个数据就代表了当前环境下手机的信号如何。具体信号强度等级请参考...
  • WiFi功能也算简单,主需要导入使用苹果系统自带的框架即可,仅仅单纯的获取手机当前连接的WiFi名称,或者获取手机系统显示的WiFi列表,那就so easy了。这里我介绍一下WiFi开发主要的步骤和流程,一些其他的使用细节...
  • 按强弱列出周围wifi的ssid、bssid、...将手机搜到的wifi按强弱顺序列出来,分别显示ssid、bssid、capbilities、level; bssid是mac地址,capbilities是加密类型,level是信号强弱数字(负数,绝对值越小,信号越强)。
  • 获取WIFI无线网络列表

    热门讨论 2011-01-11 15:47:23
    本等程序可以扫描WIFI无线网络列表,连接无线网络,断开无线网络,刷新无线网络列表,显示SSID名称,WIFI信号,加密类型
  • 今天电脑学习小编给大家推荐一款非常好用的APP免费、无广告、还纯净可以测试你的手机信号好不好还可以检测你周围的WiFi强度如何打开软件就能知道房间角落信号怎么样还能测试你家WiFi的网速呢不过这款APP目前只有安卓...
  • 原生JS+DIV模拟手机信号强度
  • 原生JS+DIV实现手机信号强度
  • 还可获取整个WiFi列表。 首先你得向苹果申请一个权限,人家允许你使用了,你再在工程里面配置一下,这样你才可以使用.苹果会给你发个问卷调查,根据你自己的情况填写.这儿谢谢我初中学霸,专业的英语翻译果然6. 1-1....
  • (uni内置方法uni.getNetworkType用来获取网络状态,uni.getSystemInfo用来获取手机系统) <template> <view> <view @click="getNetworkType">点击获取状态</view> <view> ...
  • 可以提供Wifi名称和密码,怎么用脚本读取状态和信号强度
  • unity 获取android手机的电量,WIFI信息

    千次阅读 2018-03-15 14:45:53
    这两天看见群里一直有人问怎么获取手机信息,问了一下,说要获取手机的电量 WiFi 时间这些信息,但是却没做过android的东西,也没有打过jar包,刚开始搞,尝试了很多次,说jar根本无法进行通信,弄得心灰意冷了,不...
  • WIFI信号强度获取

    万次阅读 2013-12-12 18:49:02
    现在WIFI热点越来越多,以下是通过C++ & wlanapi来获取当前可检测到的SID的信号强度,话不多说,上代码。 void WifiQual() { DWORD dwError = ERROR_SUCCESS; DWORD dwNegotiatedVersion; HANDLE hClientHandle =...
  • 在APP中,有时候需要对用户设备的网络状态进行实时监控,让用户了解自己的网络状态,根据用户的网络状态进行智能...但是,细心的朋友们不知道有没有发现,手机的状态栏上一般都会有当前网络状态的显示,因为状态栏是系...
  • // Wifi的连接速度及信号强度: public String obtainWifiInfo() { int strength = 0; WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); // 取得WifiManager对象 WifiInfo inf
  • android信号强度检测(AT指令)-附件资源
  • android WIFI 信号强度检测

    千次阅读 2016-10-15 13:40:20
    前几天开会,领导突然说让我们增加个功能,和手机WIFI信号图标一样,会随着信号强度的强弱来改变。(因为我们这里所有状态栏都是隐藏了的,所以这些小东西都得自己写了)。好了,言归正传。我们来说说如何实现这个...
  • Unity3D移动端电量与wifi信号的获取

    千次阅读 2017-07-08 12:40:43
    安卓获取电量有两种方法,一种是读取安卓手机里的一个文件,一种是利用安卓与Unity互发消息的方式 读取文件虽然方便,但是咱们不保证哪天厂商把这个文件换个位置咱们就读取不到了 方法一 参考:...
  • JavaEclipse 功能部分参考两篇博客没问题,需要注意(原作者截图存在问题) 参考1链接:https://blog.csdn.net/qq_26999509/article/details/78444163 获取手机电量信息、网络状况 参考2链接:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,890
精华内容 1,156
关键字:

获取手机wifi强度