2011-09-15 9 views
0

SignalStrength Android 클래스에 약간의 문제가 있습니다. onSignalStrengthsChanged() 메서드에서이 클래스의 객체를 참조하지 않고이 클래스의 메서드를 사용하는 방법이 있습니까? 내가 본 모든 예제에서 이것은 이벤트 클래스이며 이벤트 (gsm 신호 강도 변경)가 발생하고이 클래스의 메서드를 호출하는 유일한 방법이라는 것을 알 수 있습니다. 내가 맞습니까? 나는이 클래스의 메소드를 호출 (및 GSM 신호의 속성을 읽을 수) 다른 경우하려면Android - SignalStrength는 이벤트 클래스입니까?

public void onSignalStrengthsChanged(SignalStrength signalStrength) 
    { 
    String power= String.valueOf(signalStrength.getGsmSignalStrength()); 
    gsmStat.setText("GSM cinr: " +power); 
    } 

무엇 예를 들어 나는 버튼 객체를 클릭 할 때?

도움을 주셔서 대단히 감사드립니다.

BR, Z


이를 삭제 해 주셔서 감사합니다. getNeighbouringCellInfo를 사용하려고했지만 어떤 이유로이 값은 0을 반환했습니다. 그렇습니다. 저는 여러 가지 예제를 검색하고 시도했습니다.

Tel = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 

public void onClick(View v) { 
List<NeighboringCellInfo> neighCell = null; 
neighCell = Tel.getNeighboringCellInfo(); 
NeighboringCellInfo thisCell = neighCell.get(1); 
int thisNeighRSSI = thisCell.getRssi(); 
String rssi=Integer.toString(thisNeighRSSI); 
tvRSSI.setText("Test: " +rssi); 
} 

답변

1

수 없습니다. 관련된 SignalStrength 객체를 얻는 유일한 방법은 onSignalStrengthChanged 메소드입니다.

그러나 TelephonyManager.getNeighbouringCellInfo 메소드를 사용하면 주변 셀을 나열하고 RSSI 신호 (getRssi) 신호를 얻을 수 있습니다.

0

은 참조 :이 삼성 장치에서 작동하지 않는 것 getNeighboringCellInfo() returning null list

getNeighboringCellInfo() 

.

답변을 작성해 죄송합니다. 기존 답변에 댓글을 추가 할 수 없습니다.

내 대답은 사용자가 버튼을 누르면 마지막으로 기록 된 RSSI 값이 반환되도록 서비스에서 직접 RSSI를 추적 할 수 있습니다. 그렇게 말하면서, 저는 삼성 갤럭시에서 작동하는 것으로 나타났습니다. RSSI 값은 실제로는 실제 RSSI가 아닌 안테나 바 (즉, 단지 4 개의 값만 가져옵니다)의 수입니다.

+0

그래, 실제로 삼성 갤럭시가 있다는 것을 알았지 만, 혼란 스러울 것은 에뮬레이터에서 테스트하는 동안이 결과를 얻는다는 것입니다. 그래서 나는 완전히 새로운 코드이기 때문에 코드에 문제가있을 수 있다고 생각합니다. 이. Java 개정판을 수행해야합니다. 거의 모든 것을 잊었습니다. :) – Z555

관련 문제