2016-08-17 34 views
0

まず、lte rsrp(または他の)値を取得するためのコードを示します。 このコードは、別のaysncTaskで実行されます。AndroidがLTEのRSRP値を引き出す

TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); 
     int tempInt; 
     while (isRunning) { 
      try { 
       List<CellInfo> cellInfoList = tm.getAllCellInfo(); 

       if (cellInfoList != null && cellInfoList.size() != 0) { 
         msg = handler.obtainMessage(); 
         CellInfo cellInfo = cellInfoList.get(0); 
         result = -9999; 
         tempInt = 0; 
         if (cellInfo instanceof CellInfoWcdma) { 
          result = ((CellInfoWcdma) cellInfo).getCellSignalStrength().getDbm(); 
          Log.e(TAG, "3G : " + result + ""); 
         } else if (cellInfo instanceof CellInfoLte) { 
          result = ((CellInfoLte) cellInfo).getCellSignalStrength().getDbm(); 
          Log.e(TAG, "LTE : " + result); 
         } else if (cellInfo instanceof CellInfoGsm) { 
          result = ((CellInfoGsm) cellInfo).getCellSignalStrength().getDbm(); 
          Log.e(TAG, "GSM" + result); 
         } else if (cellInfo instanceof CellInfoCdma) { 
          result = ((CellInfoCdma) cellInfo).getCellSignalStrength().getDbm(); 
          Log.e(TAG, "CDMA" + result); 
         } 
..... 

問題は、私は私が取得していたデータが正しいであることを確認していない、です。

rsrpの値を見るためにこのソースをバックグラウンドで実行している間に、* 123456#コマンドを使用してLG G3の隠しメニューを実行します。リアルタイムrsrp値を表示するデバッグモードを示します。

問題は、ほとんどの場合、私のアプリのログに表示されるrsrpと、隠しメニューのものが異なることです。私のアプリは約-3〜3回詳細を表示します。

なぜこれが起こっていますか?私のコードに何か問題がありますか?上記のコードは時間間隔がなく、アプリケーションを強制終了する前に続きます。

答えて

0

コードに間違いはありません。 3GPP規格のドキュメントをチェックすると、RSRPを報告する際にデバイスメーカに余裕があることがわかります。これは、16dBの広がり、つまり+/- 8dB以内でなければなりません。あなたがその範囲内にいるという事実は、あなたのコードがおそらく上手であることを私に伝えます。また、アプリと同時に秘密コードを実行すると、矛盾する読み取り値が得られます。あなたが本当にすべきことは、携帯電話の秘密コードを使用して一貫したRSRPの読書を取得する場所を見つけることです(LTEとWifiをオフにしてください、これらが干渉する場合は干渉しないようにしてください)。あなたがLTE RSRPを手に入れようとしているなら、LTEをオフにしていますが、それはそれがどのように設計されたかです)。あなたが良い読書を得たら、あなたのLTEを元に戻してください。しかし、Wifiをオフにして(まだ干渉することがあります)、あなたのアプリを開いてそこからRSRPの読書を得るようにしてください。あなたのアプリのRSRPが電話フィールドモードから報告されたRSRPの+/- 8dBの範囲内にあるなら、あなたは良いです。あなたの情報のために

は、ここでは他のLTEのパラメータの中RSRPをつかむ私が作ったアンドロイドアプリです: https://github.com/parksjg/IndoorLTE3a

関連する問題