2011-12-30 19 views
1

信号強度とセルIDとlacを表示します。私はSIGNAL_STRENGTHSとCELL_LOCATIONの両方のリスナーを作成しました。私はまだUMTS(そのスタック-1を示している)で接続し、私はセルIDとラックを表示することはできません適切な値を取得することはできません。 Iveは、リスナークラス内に別のメソッドを追加して、場所の変更をリッスンしました。私はそれが正しいかどうかは分かりません。 onCellLocationChanged()メソッドはPhoneStateListenerに属していますが、なぜ私はこれを取得していますか?ありがとうございましたcellLocationChangedメソッドがタイプアクティビティで定義されていません

package com.example.gsmdata; 

import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.widget.TextView; 
import android.telephony.TelephonyManager; 
import android.telephony.SignalStrength; 
import android.telephony.gsm.GsmCellLocation; 
import android.telephony.cdma.CdmaCellLocation; 
import android.telephony.PhoneStateListener; 

public class GsmDataActivity extends Activity { 
/** Called when the activity is first created. */ 


int network_type; 
int signal_strength; 
int cid; 
int Lac; 
int bts; 

TextView network, signal, ci, lac; 
TelephonyManager phone ; 
GsmCellLocation CellId; 
CdmaCellLocation baseStation; 
SignalStrength phone_sig; 
signalStateListener listenphone; 



@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main);  


    network = (TextView) findViewById(R.id.tvNetwork); 
    signal =(TextView) findViewById(R.id.tvSignalValue); 
    ci = (TextView) findViewById(R.id.tvCiValue); 
    lac = (TextView) findViewById(R.id.tvLacValue); 

    /* Update Listener and start it */ 

    phone = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
    listenphone= new signalStateListener(); 
    phone.listen(listenphone, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS | PhoneStateListener.LISTEN_CELL_LOCATION); 

    network_type = phone.getNetworkType(); 

    switch (network_type){   
    case 1: network.setText("GPRS");break; 
    case 3: network.setText("UMTS");break; 
    case 4: network.setText("CDMA");break; 
    case 8: network.setText("HSDPA");break; 
    case 9: network.setText("HSUPA");break; 
    case 10: network.setText("HSPA");break; 
    case 13: network.setText("LTE");break; 
    default: network.setText("UNKNOWN");break; 

    } 


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


} 
@Override 
protected void onResume() 
{ 
    super.onResume(); 
    phone.listen(listenphone, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS |PhoneStateListener.LISTEN_CELL_LOCATION); 

    network_type = phone.getNetworkType(); 

    switch (network_type){   
    case 1: network.setText("GPRS");break; 
    case 3: network.setText("UMTS");break; 
    case 4: network.setText("CDMA");break; 
    case 8: network.setText("HSDPA");break; 
    case 9: network.setText("HSUPA");break; 
    case 10: network.setText("HSPA");break; 
    case 13: network.setText("LTE");break; 
    default: network.setText("UNKNOWN");break; 

    } 


} 

private class signalStateListener extends PhoneStateListener{ 

    @Override 

    public void onSignalStrengthsChanged(SignalStrength phone_sig){ 
    super.onSignalStrengthsChanged(phone_sig); 


    if (network_type==1){ 
     signal_strength = phone_sig.getGsmSignalStrength(); 
     signal.setText(-1*(113-(2*signal_strength)) + "dBm"); 

    } 
    else if(network_type==0){ 
     signal.setText("Unknown Network type"); 
    } 
    else{ 
     signal_strength= phone_sig.getCdmaDbm(); 
     signal.setText(signal_strength + "dBm");  
    } 

    } 
    } 


    public void onCellLocationChanged(GsmCellLocation CellId){ 
     super.onCellLocationChanged(CellId); 

     ci.setText(CellId.getCid()); 
     lac.setText(CellId.getLac()); 
     /*bts= baseStation.getBaseStationId(); 
     Lac=cellId.getLac();*/ 

    } 


} 

答えて

0

私のコードには欠けていたものが見つかりました。

CellId=(GsmCellLocation) phone.getCellLocation(); 

私は、コードのすべての作品のこの行を追加し、私はそれがあると解決策とは何か、なぜId及び基地局のLAC

+0

は、そのは、LTEおよびUMTSタイプのネットワークで作業していないセルを見ることができれば – Ateeq

+1

@Ateeq http://developer.android.com/reference/android/telephony/PhoneStateListener.html#onCellInfoChanged(java.util.List ) – black

関連する問題