0
私が接続している現在のセルの信号強度を取得しようとしています。これまでのところ、私はこの例を見つけた:アンドロイドの現在のセルの信号強度を保存する際の問題
http://www.android10.org/index.php/forums/44-maplocation/868-tutorialget-gsm-signal
しかし、それは、信号が変更されたときにトーストを取得することだけです。変数に信号強度の値を保存する方法はありますか?
私は変数に値を保存して取得することで、次のコードでこれを試しましたが、 "初期値"を取得し続けます。ここでは、コードがあります:
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>
私は本当に誰も私には信号強度の値を救うことができれば、それを感謝し、またはそれを行うには、他の方法をお勧めします。.. 。
おかげ
どこに信号強度を保存しますか? SDカード、ネットワーク、ローカルデータベースのファイルですか? – qdot
まず、変数に保存したいのですが、後でデータベースを作成しますが、それは問題ではありません。 GetGsmSignalStrengthクラスから取得できるだけです – modellero