2013-07-08 2 views
0

아래 코드에서 isRegistered() 메서드는 SIM이 네트워크에 등록되었지만 항상 false를 반환합니다. API 17에서 "ACCESS_COARSE_LOCATION"에 사용 된 권한CellInfo api isRegistered() 항상 false 반환

List<CellInfo> cellinoflist= tm.getAllCellInfo(); 
for(CellInfo cellinfo : cellinoflist) 
{ 
    if(cellinfo!=null && cellinfo instanceof CellInfoGsm) { 
    CellInfoGsm GSMinfo = (CellInfoGsm) cellinfo; 
    Log.d(TAG, "GSM network registered: "+GSMinfo.isRegistered()); 
    } 
} 

우리가이 방법을 사용할 수있는 다른 방법이 있습니까?

+0

'cellinfo'변수의 출처는 무엇입니까? – frogmanx

+0

코드가 누락되었습니다 – user755

+0

여기에 누구입니까? 어떤 포인터를 계속 진행하십시오 – user755

답변

0

어떻게 든 나에게 이것은 4G 네트워크에 등록 된 SIM 카드에서 작동하는 것 같습니다. 처음으로 isRegistered()가 true를 반환하는 것을 볼 수있었습니다. 그러나 CellSignalStrengthLte 값은 모든 변수 (rsrp, rsrq, rssnr, cqi, ta)에 대해 동일합니다.

0

"ACCESS_COARSE_UPDATES"권한을 사용하셨습니까?

<uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" /> 
+0

예, ACCESS_COARSE_UPDATES 및 ACCESS_COARSE_LOCATION 둘 다 사용했지만 출력에는 차이가 없습니다. – user755

+0

어쨌든이 카드는 4G 네트워크에 등록 된 SIM 카드에서 작동하는 것으로 보입니다. 처음으로 isRegistered()가 true를 반환하는 것을 볼 수있었습니다. 그러나 CellSignalStrengthLte 값은 모든 변수 (rsrp, rsrq, rssnr, cqi, ta)에 대해 동일합니다. – user755