android开发之获取信号强度
来源:互联网 发布:看不起同学知乎 编辑:程序博客网 时间:2024/05/16 12:33
转自:http://blog.csdn.net/zmwell/article/details/6826700
—— 路漫漫其修远兮,吾将上下而求索
——刚接触android一个月,想把自己学到的一些东西记录下来以激励自己
获取信号强度用到的相关的包android.telephony,用到的相关的类有
android.telephony.PhoneStateListener;
android.telephony.SignalStrength;
android.telephony.TelephonyManager;
代码:
public class GetGsmSignalStrength extends Activity { //TelephonyManager类的对象TelephonyManager Tel; //MyPhoneStateListener类的对象,即设置一个监听器对象MyPhoneStateListener MyListener; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { //SignalStrength signalStrength; super.onCreate(savedInstanceState); setContentView(R.layout.main); //private TextView myText=null; //TextView myText = (TextView)findViewById(R.id.myText); //myText.setText("GSM Cinr = "+ String.valueOf(SignalStrength.signalStrength.getGsmSignalStrength())); //初始化对象 MyListener = new MyPhoneStateListener(); //Return the handle to a system-level service by name.通过名字获得一个系统级服务 Tel = ( TelephonyManager )getSystemService(Context.TELEPHONY_SERVICE); //Registers a listener object to receive notification of changes in specified telephony states.设置监听器监听特定事件的状态 Tel.listen(MyListener ,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); } @Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();Tel.listen(MyListener, PhoneStateListener.LISTEN_NONE);} @Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();Tel.listen(MyListener,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);} //监听器类 private class MyPhoneStateListener extends PhoneStateListener{ /*得到信号的强度由每个tiome供应商,有更新*/ TextView myText = (TextView)findViewById(R.id.myText); TextView myText1=(TextView)findViewById(R.id.myText1); @Override public void onSignalStrengthsChanged(SignalStrength signalStrength){ //调用超类的该方法,在网络信号变化时得到回答信号 super.onSignalStrengthsChanged(signalStrength); //cinr:Carrier to Interference plus Noise Ratio(载波与干扰和噪声比) Toast.makeText(getApplicationContext(), "Go to Firstdroid!!! GSM Cinr = "+ String.valueOf(signalStrength.getGsmSignalStrength()), Toast.LENGTH_SHORT).show(); myText.setText("CDMA RSSI = "+ String.valueOf(signalStrength.getCdmaDbm())); myText1.setText("GSM Cinr = "+ String.valueOf(signalStrength.getGsmSignalStrength())); } }}
下面是关于信号强度的一些总结。(参考了网上一些资料)
信号强度单位:android定义了2种信号单位:dBm(1毫瓦的分贝数)和asu(alone signal unit 独立信号单元)。
它们之间的关系是:dBm =-113+2*asu,这是google给android手机定义的特有信号单位。而且信号强度数值越大越好,67dbm VS -90dbm ,前者信号比后者好!中国移动的规范规定,手机接收电平>=(城市取-90dBm;乡村取-94dBm)时,则满足覆盖要求,也就是说此处无线信号强度满足覆盖要求,即接受电平>=-90dBm,就可以满足覆盖要求
-67dBm要比-90dBm信号要强20多个dB,那么它在打电话接通成功率和通话过程中的话音质量都会好的多(当然也包括EDGE(EDGE是一种从GSM到3G的过渡技术)/GPRS上网的速度那些 )
- android开发之获取信号强度
- android开发之获取信号强度
- iOS开发之获取WIFI信号强度
- Android之获取wifi信号强度
- Android获取信号强度
- Android 获取信号强度
- Android 信号强度的获取
- Android 信号强度的获取
- Android中获取信号强度
- android获取wifi信号强度
- Android获取WIFI信号强度
- android获取wifi信号强度
- Android 获取wifi信号强度
- android 获取wifi 信号质量,信号强度
- android获取bluetooth的信号强度(RSSI)
- android获取bluetooth的信号强度(RSSI)
- Andoid 获取信号强度
- WIFI信号强度获取
- android 如何设置小区广播默认信道 主要是印度市场
- Ubuntu_中软件的安装、卸载以及查看的方法总结
- FindBugs使用
- RAR文件格式官方说明书的翻译[中英对照]
- android 如何获取MCC/MNC
- android开发之获取信号强度
- 问题20130509
- Java编程最差实践
- 如何复制FPGA的引脚分配
- 把list转换成 datatable
- (转)关于android的4.2的0文件夹的详解(目录结构挂载分析)
- android CellbroadCast涉及的文件有哪些
- android预置频道有时失败情况如何处理?
- 在只有JRE的环境下使用BTrace