2 zxd 72 zxd_72 于 2013.02.05 17:48 提问

在 android 中如何获得网络强度

我想在手机上面显示网络的网络信号强度。
现在我可以通过下面的代码检查出是否连接到wifi,但是接下来我想要知道网络信号强度。还需要添加什么代码?

ConnectivityManager connectivityManager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetInfo = connectivityManager
                .getActiveNetworkInfo();
        NetworkInfo mobNetInfo = connectivityManager
                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);



        TextView netStatus = (TextView) findViewById(R.id.netStatus);
        if (activeNetInfo != null) {
            netStatus.setText(" Connection Status - Connected "+activeNetInfo.getTypeName());
        } else if (mobNetInfo != null) {
            netStatus.setText(" Connection Status - Connected "+mobNetInfo.getTypeName());
        } else {
            netStatus.setText(" Connection Status - Not Connected ");
        }

2个回答

candebbs
candebbs   2013.02.16 11:21
已采纳

好像不行吧,不知4.0以后的版本有没有提供相应的方法

yongyong_21
yongyong_21   2013.02.06 10:13

试一下:

ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo Info = cm.getActiveNetworkInfo();
    if (Info == null || !Info.isConnectedOrConnecting()) {
        Log.i(TAG, "No connection");
    } else {
        int netType = Info.getType();
        int netSubtype = Info.getSubtype();

        if (netType == ConnectivityManager.TYPE_WIFI) {
            Log.i(TAG, "Wifi connection");
            WifiManager wifiManager = (WifiManager) getApplication().getSystemService(Context.WIFI_SERVICE);
            List<ScanResult> scanResult = wifiManager.getScanResults();
            for (int i = 0; i < scanResult.size(); i++) {
                Log.d("scanResult", "Speed of wifi"+scanResult.get(i).level);//The db level of signal 
            }


            // Need to get wifi strength
        } else if (netType == ConnectivityManager.TYPE_MOBILE) {
            Log.i(TAG, "GPRS/3G connection");
            // Need to get differentiate between 3G/GPRS
        }
    }
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android监控WIFI和GSM状态并绘制网络强度
在实际工作中,常常遇到APP显示网络强度的需求。 使用过程中涉及的应用权限如下: 一、网络强度分为二个部分:     1、手机网络GSM(2G/3G等)         GSM需要注册PhoneStateListener监听器,通过监听网络改变,获取手机当前网络的强度。 2、Wifi网络
Andoid 获取信号强度
1.获得TelephoneManager:  TelephonyManager telephoneManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);   2.获得PhoneStateListener: final int type = telephoneManager.getNetworkTy
Android网络状态监听,wifi强度监听
1、网络状态判断 import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; /** * 网络工具 * @author fishpan */ public class NetWorkUtils { public Context cont
Android——获取手机当前信号强度(dbm/asu值)
/**      * 得到当前的手机蜂窝网络信号强度      * 获取LTE网络和3G/2G网络的信号强度的方式有一点不同,      * LTE网络强度是通过解析字符串获取的,      * 3G/2G网络信号强度是通过API接口函数完成的。      * asu 与 dbm 之间的换算关系是 dbm=-113 + 2*asu      */     public void ge
Android获取到手机信号强度信息后传回给unity
之前做了一个在unity里面获取安卓手机信号强度的功能,看了很多帖子,大多数讲得很好,但是对于一窍不通的我来说,帖子还是有点不全,我不能按照帖子很顺利的做出来,经过一番尝试,最终还是做出了一个版本,顺便也记下来,免得下次爬坑!       下面简单记下,首先在AndroidManifest.xml里面加入获取手机信号的权限: 接着在自己的类里判断是否有网络连接: public cla
Unity 安卓wifi强度
第一步:查看当前所有wifi源: private String WifiSource() { //result 返回UNITY的信息 String result=""; try { WifiManager wifiManager = (WifiManager) getSystemService(
android-监听wifi状态和信号强度变化
// ///////////////////////////////////////////////////////////////// // 监听网络网络状态变化 private MyReceiver mMyReceiver; private final String NETWORK_STATE_CHANGE = "android.net.conn.CONNECTIVITY_CHANGE
Android检测网络信号强弱
转载自:http://blog.csdn.net/deng529828/article/details/10456417 先把activity_main.xml文件代码贴出来.TextView充满屏幕 [html] view plaincopy LinearLayout xmlns:android="http://schemas.android
Android手机得到信号强度信息
Android手机得到信号强度信息本文档讲述如何使用通过Android系统来得到手机信号强度等信息Android手机得到信号强度信息背景介绍 相关调研 查找源码 代码实现 总结背景介绍公司的主题业务是对通信基站的研发,我需要研发一款软件来配合基站的测试工作。通过Android手机连接至基站后,采集手机上的各种和信号强度相关的信息,然后进行分析这些数据,通过分析数据完成对基站的测试相关调研需要测试的参
Unity3D移动端电量与wifi信号的获取
移动端游戏中无法看到电量与wifi信号对于玩家来说是很困扰的事。 关于这个问题安卓与iOS有不同的方法 电量 安卓 安卓获取电量有两种方法,一种是读取安卓手机里的一个文件,一种是利用安卓与Unity互发消息的方式 读取文件虽然方便,但是咱们不保证哪天厂商把这个文件换个位置咱们就读取不到了 方法一 参考:http://www.cnblogs.