gpt4 book ai didi

Android 在未连接蜂窝网络时仍会检测蜂窝信号强度

转载 作者:行者123 更新时间:2023-11-29 20:15:47 25 4
gpt4 key购买 nike

我编写了一个小的 Android 程序来检测手机信号强度。我将一张过期的 SIM 卡插入我的手机,它在状态栏中显示零信号。但是,以下代码返回信号强度等于 22

public class WelcomeActivity extends AppCompatActivity {
TelephonyManager telephonyManager;
CustomPhoneStateListener customPhoneStateListener;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);

customPhoneStateListener = new CustomPhoneStateListener();
telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.listen(customPhoneStateListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
}

@Override
protected void onPause() {
super.onPause();
telephonyManager.listen(customPhoneStateListener, PhoneStateListener.LISTEN_NONE);
}

@Override
protected void onResume() {
super.onResume();
telephonyManager.listen(customPhoneStateListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
}


/* Phone State Listener */
private class CustomPhoneStateListener extends PhoneStateListener {
@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength) {
super.onSignalStrengthsChanged(signalStrength);

int strength = signalStrength.getGsmSignalStrength();
Toast.makeText(getApplicationContext(), "Signal Strength: " + String.valueOf(strength), Toast.LENGTH_SHORT).show();
}
}
}

值 22 从何而来?如何检测蜂窝网络是否已连接?这个值真的靠谱吗?

来自 Android documentation , getGsmSignalStrength() 返回值 0 到 31 和 99。

最佳答案

我刚刚实现了n个运行代码:

package com.example.sanketprabhu.gsmsignalstrength;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.telephony.PhoneStateListener;
import android.telephony.SignalStrength;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity
{
TelephonyManager Tel;
MyPhoneStateListener MyListener;

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyListener = new MyPhoneStateListener();
Tel = ( TelephonyManager )getSystemService(Context.TELEPHONY_SERVICE);
Tel.listen(MyListener ,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
}

@Override
protected void onPause()
{
super.onPause();
Tel.listen(MyListener, PhoneStateListener.LISTEN_NONE);
}

@Override
protected void onResume()
{
super.onResume();
Tel.listen(MyListener,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
}

public class MyPhoneStateListener extends PhoneStateListener
{
/* Get the Signal strength from the provider, each tiome there is an update */
@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength)
{
super.onSignalStrengthsChanged(signalStrength);
Toast.makeText(getApplicationContext(), "Go to Firstdroid!!! GSM Cinr = "
+ String.valueOf(signalStrength.getGsmSignalStrength()), Toast.LENGTH_SHORT).show();
}

}

}

它对我有用。

我附上了一些屏幕截图。

你是对的:值在betn 0-31 & 99

不幸的是,我在办公室,信号强度很低,但可以用

image

关于Android 在未连接蜂窝网络时仍会检测蜂窝信号强度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33931989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com