0

以下のコードでは、getCid()、getPsc()、getLac()、GetMnc()、getMcc() はすべて同じ値になります。

アクセス許可を使用して API 17 でテスト済み

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

Javaで

TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
List<CellInfo> cellinoflist= tm.getAllCellInfo();
for(CellInfo cellinfo : cellinoflist)
{
...
CellInfoGsm GSMinfo = (CellInfoGsm) cellinfo;
CellIdentityGsm gsmCellIdentity= GSMinfo.getCellIdentity();
if(gsmCellIdentity!= null) {
        Log.d(TAG, " mCid: "+gsmCellIdentity.getCid()+" mPsc: "+
             gsmCellIdentity.getPsc()+" mLac: "+gsmCellIdentity.getLac()+
     " mMnc: "+gsmCellIdentity.getMnc()+" mMcc:"+gsmCellIdentity.getMcc());
    }
 .....
}

ログキャット

mCid: 2147483647 mPsc: 2147483647 mLac: 2147483647 mMnc: 2147483647 mMcc:2147483647

ここで何かが足りないので、提案してください。

4

1 に答える 1

0

「2147483647」が最大の int 値であることは明らかです。ほとんどの場合、コードに問題があり、値がデフォルトの最大値であり、同じ値ではありません。

まず、次のことを確認する必要があります。

if(cell instanceof CellIdentityGsm){...

キャスト前。それが取り残されていない限り。

于 2013-09-23T20:55:51.583 に答える