cocos2dx 安卓电量,网络信号获取(android版本),网狐可以直接复制就行
16lz
2021-01-26
获取网络类型及信号强弱
这里网络类型只获取4G跟wifi,废话不多说,直接上代码
JAVA层获取网络类型及信号强
//加载所需的包import android.net.wifi.WifiInfo;import android.net.wifi.WifiManager;import android.telephony.TelephonyManager;import android.telephony.PhoneStateListener;import android.telephony.SignalStrength;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.content.IntentFilter;//网络状态强度public static final int NETLEVEL_STRENGTH_NONE_OR_UNKNOWN = 0;public static final int NETLEVEL_STRENGTH_POOR = 1;public static final int NETLEVEL_STRENGTH_MODERATE = 2;public static final int NETLEVEL_STRENGTH_GOOD = 3;public static final int NETLEVEL_STRENGTH_GREAT = 4;/*获取wifi信号*/private static WifiManager wifiManager = null;private static WifiInfo wifiInfo = null;public static int wifiLevel;public static int singnalLevel;//信号监听TelephonyManager Tel;MyPhoneStateListener MyListener;public static ConnectivityManager connManager;
在onCreate等方法中添加监听:
//@mao 信号强度监听MyListener = new MyPhoneStateListener();Tel = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);Tel.listen(MyListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);//添加wifi强度监听wifiManager = (WifiManager)getSystemService(WIFI_SERVICE);initHandler();
@Overrideprotected void onResume() { super.onResume();getURLData();mWakeLock.acquire(); setIntent(null);}@Overrideprotected void onPause() { mWakeLock.release();super.onPause();}
获取信息代码:
//获取wifi强度public static int getSingnalLevel() { return singnalLevel;}//获取wifi强度 public static int getWifiLevel() { wifiInfo = wifiManager.getConnectionInfo(); int wifiStrength = wifiInfo.getRssi(); if (wifiStrength <= 0 && wifiStrength >= -50) { wifiLevel = NETLEVEL_STRENGTH_GREAT; } else if (wifiStrength < -50 && wifiStrength >= -70) { wifiLevel = NETLEVEL_STRENGTH_GOOD; } else if (wifiStrength < -70 && wifiStrength >= -80) { wifiLevel = NETLEVEL_STRENGTH_MODERATE; } else if (wifiStrength < -80 && wifiStrength >= -100) { wifiLevel = NETLEVEL_STRENGTH_POOR; } else { wifiLevel = NETLEVEL_STRENGTH_NONE_OR_UNKNOWN; } return wifiLevel; }//获取信号强度 public static int getNetInfo(){ NetworkInfo mobNetInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); NetworkInfo wifiNetInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if(!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()){ netLevel = 0; } else { netLevel = getWifiLevel(); if(netLevel == 0) netLevel = getSingnalLevel()+10; } return netLevel;//netInfo;} // @mao 信号private class MyPhoneStateListener extends PhoneStateListener { public void onSignalStrengthsChanged(SignalStrength signalStrength) { super.onSignalStrengthsChanged(signalStrength);int asu = signalStrength.getGsmSignalStrength();if (asu <= 2 || asu == 99) singnalLevel = NETLEVEL_STRENGTH_GOOD;else if (asu >= 12) singnalLevel = NETLEVEL_STRENGTH_GREAT;else if (asu >= 8) singnalLevel = NETLEVEL_STRENGTH_GOOD;else if (asu >= 5) singnalLevel = NETLEVEL_STRENGTH_MODERATE;else singnalLevel = NETLEVEL_STRENGTH_GOOD;}};
更多相关文章
- android将InputStream转为FileOutputStream保存HttpURLConnectio
- Android音频开发之使用OpenSL ES API
- Android(安卓)Storage Manager 处理
- Android(安卓)几种常用关于屏幕操作的方法(获取屏幕大小,全屏,显示
- Android(安卓)Studio TCP IP 服务器和客户端建立
- java获取http:图片下载代码——android基础编
- android实用技巧:android实现listview异步加载图片
- 【Android】获取设备标识号
- DTMF信号处理