android中保存当前小区信号强度的问题
我正试图得到我所连接的当前电池的信号强度。到目前为止,我发现了这个例子: 但这只是为了在信号改变时干杯。有没有办法将信号强度值保存在变量中 我用下面的代码尝试了这一点,将值保存在一个变量上并得到它,但我一直得到“初始值”。代码如下:android中保存当前小区信号强度的问题,android,listener,telephonymanager,rssi,signal-strength,Android,Listener,Telephonymanager,Rssi,Signal Strength,我正试图得到我所连接的当前电池的信号强度。到目前为止,我发现了这个例子: 但这只是为了在信号改变时干杯。有没有办法将信号强度值保存在变量中 我用下面的代码尝试了这一点,将值保存在一个变量上并得到它,但我一直得到“初始值”。代码如下: package org.mode.gsm; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.telepho
package org.mode.gsm;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.SignalStrength;
import android.telephony.TelephonyManager;
import android.widget.TextView;
import android.widget.Toast;
public class GetGsmSignalStrength extends Activity {
TelephonyManager Tel;
MyPhoneStateListener MyListener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView abcd = new TextView(this);
abcd.setText(getRSSI());
setContentView(abcd);
}
public String getRSSI() {
MyListener = new MyPhoneStateListener();
Context context = (Context) getApplicationContext();
Tel = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
Tel.listen(MyListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
String GSMCinr = "GSM CINR = " + MyListener.getCinr();
return GSMCinr;
}
private class MyPhoneStateListener extends PhoneStateListener {
String cinr = "initial value";
@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength) {
super.onSignalStrengthsChanged(signalStrength);
cinr = String.valueOf(signalStrength.getGsmSignalStrength());
Toast.makeText(
getApplicationContext(),
"GSM Cinr = "
+ String.valueOf(signalStrength
.getGsmSignalStrength()), Toast.LENGTH_LONG)
.show();
}
public String getCinr() {
return cinr;
}
}
}
以及舱单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.mode.gsm"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".GetGsmSignalStrength" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
如果有人能帮我保存信号强度的价值,或者建议其他方法,我将不胜感激
谢谢
Rssi在INTEGER中声明;因此,在创建一个函数(字符串)之后,可以像这样返回“+Rssi”
public String getRssi(){
return ""+Rssi;
}
您必须转换以dBm为单位的值。
希望这会有帮助 您希望将信号强度保存到何处?SD卡、网络、本地数据库上的文件?首先,我只想将其保存在变量中,稍后我会将其放入数据库中,但这不是问题。。。我只想从我的GetGsmSignalStrength类中获得它
public String getRssi(){
return ""+Rssi;
}