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