Android 获取信号强度

大 家看到标题就明白了,我们有的时候在电梯里,有时有的电话有信号,有时有的电话没有信号,这个是非常闹心的,要是我们能监听一下我们自己手机信号的强度就 好了。这样,当我们在等重要的人士的电话,不至于接不到这个电话,如果是这个电话你没有接到的话,可能你的一生就这么平淡的过去,如果你接到了这个电话的 话,也许你的一生就会发生改变。我们应该把机会掌握的自己的手里,这样我们才能去迎接改变自己的机会。不在多说了,我们还是看看代码吧:

       android.permission.CHANGE_NETWORK_STATE接下来的许可:“AndroidManifest.xml”文件应该看起来如下:

Java代码:


  1. < ?xml version="1.0" encoding="utf-8"?>

  2. < ?xml version="1.0" encoding="utf-8"?>

  3. <manifest xmlns:android="http://schemas.android.com/apk/res/android"

  4. package="Firstdroid.Tutorial.GetGsmSignalStrength"

  5. android:versionCode="1"

  6. android:versionName="1.0">

  7. <application android:icon="@drawable/icon" android:label="@string/app_name">

  8. <activity android:name=".GetGsmSignalStrength"

  9. android:label="@string/app_name">

  10. <intent -filter>

  11. <action android:name="android.intent.action.MAIN" />

  12. <category android:name="android.intent.category.LAUNCHER" />

  13. </intent>

  14. </activity>

  15. </application>

  16. <uses -sdk android:minSdkVersion="4" />

  17. <uses -permission android:name="android.permission.CHANGE_NETWORK_STATE"></uses>

  18. </manifest>
复制代码


       现在我们的权限已经设置好了,就得看看主要都到了什么包。

Java代码:

  1. package eoe.signal;

  2. import android.app.Activity;

  3. import android.content.Context;

  4. import android.os.Bundle;

  5. import android.telephony.PhoneStateListener;

  6. import android.telephony.SignalStrength;

  7. import android.telephony.TelephonyManager;

  8. import android.widget.Toast;
复制代码


       现在我们就来看看代码吧

Java代码:

  1. public class GetGsmSignalStrength extends Activity
  2. {

  3. /* 我们可以用它们onResume和onPause方法停止listene*/

  4. TelephonyManager Tel;

  5. MyPhoneStateListener MyListener;


  6. /** Called when the activity is first created. */

  7. @Override
  8. public void onCreate(Bundle savedInstanceState)
  9. {

  10. super.onCreate(savedInstanceState);

  11. setContentView(R.layout.main);

  12. /* Update the listener, and start it */

  13. MyListener = new MyPhoneStateListener();

  14. Tel = ( TelephonyManager )getSystemService(Context.TELEPHONY_SERVICE);

  15. Tel.listen(MyListener ,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);

  16. }

  17. /* Called when the application is minimized */

  18. @Override
  19. protected void onPause()
  20. {

  21. super.onPause();

  22. Tel.listen(MyListener, PhoneStateListener.LISTEN_NONE);

  23. }



  24. /* Called when the application resumes */

  25. @Override
  26. protected void onResume()
  27. {

  28. super.onResume();

  29. Tel.listen(MyListener,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);

  30. }



  31. /* —————————– */

  32. /* 开始PhoneState听众*/

  33. /* —————————– */

  34. private class MyPhoneStateListener extends PhoneStateListener

  35. {

  36. /* 从得到的信号强度,每个tiome供应商有更新*/

  37. @Override
  38. public void onSignalStrengthsChanged(SignalStrength signalStrength)
  39. {

  40. super.onSignalStrengthsChanged(signalStrength);

  41. Toast.makeText(getApplicationContext(), "Go to Firstdroid!!! GSM Cinr = "

  42. + String.valueOf(signalStrength.getGsmSignalStrength()), Toast.LENGTH_SHORT).show();

  43. }


  44. };



  45. }
posted @   brave-sailor  阅读(2563)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示