android 如何以编程方式检查连接的蓝牙设备上是否安装了sim卡(sim卡状态)或手机信号强度?

toe95027  于 12个月前  发布在  Android
关注(0)|答案(1)|浏览(118)

我正在为我的android设备开发一个系统拨号程序,它可以使用蓝牙连接的手机拨打电话。所以我需要知道sim卡是否插入或者至少是它的手机信号水平。我需要这个显示一个特殊的通知“没有sim卡”。

zengzsys

zengzsys1#

您可以使用电话管理器和电话状态侦听器。

TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);

tm.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);

class MyPhoneStateListener extends PhoneStateListener {

        @Override
        public void onSignalStrengthsChanged(SignalStrength signalStrength) {
            super.onSignalStrengthsChanged(signalStrength);
            int signalSupport = -signalStrength.getCdmaDbm();
            Log.d(getClass().getCanonicalName(), "gsm signal--> " + signalSupport);

            if (signalSupport < 90) {
                Log.d(getClass().getCanonicalName(), "Signal GSM : Good");

            } else if (signalSupport < 100) {
                Log.d(getClass().getCanonicalName(), "Signal GSM : Avarage");

            } else if (signalSupport < 110) {
                Log.d(getClass().getCanonicalName(), "Signal GSM : Weak");

            } else if (signalSupport < 120) {
                Log.d(getClass().getCanonicalName(), "Signal GSM : Very weak");

            } else { //120 -> no sim/signal
                Log.d(getClass().getCanonicalName(), "Signal GSM : Null");
            }
        }
    }

相关问题