目標:特定のタイプの接続 (私が実際に使用しているもの) の情報 (信号強度) を取得します。
問題: reperesentCellInfo
とは何か、そしてそこから情報を抽出する方法を正確に理解することはできません。getAllCellInfo
質問:
1) アンドロイド開発者のウェブサイトから
CellInfo:ある時点からの不変のセル情報。
どういう意味ですか?
2) wcdma、umts、gsm、lte のどれを使用しているかを知りたいです。信号強度を取得するための適応バージョンの下に、getAllCellInfoを使用したコードのスニペットを見つけました
for (final CellInfo info : telephonyManager.getAllCellInfo()) {
if (info instanceof CellInfoGsm) {
final CellSignalStrengthGsm gsm = ((CellInfoGsm) info).getCellSignalStrength();
if(gsm.getLevel() >= localMaxSignalStrength)
localMaxSignalStrength = gsm.getLevel();
Toast.makeText(getApplicationContext(), "gsm rssi" + localMaxSignalStrength, Toast.LENGTH_LONG).show();
} else if (info instanceof CellInfoWcdma) {
final CellSignalStrengthWcdma cdma = ((CellInfoWcdma) info).getCellSignalStrength();
if(cdma.getLevel() >= localMaxSignalStrength)
localMaxSignalStrength = cdma.getLevel();
Toast.makeText(getApplicationContext(), "wcdma rssi" + localMaxSignalStrength, Toast.LENGTH_LONG).show();
} else if (info instanceof CellInfoLte) {
final CellSignalStrengthLte lte = ((CellInfoLte) info).getCellSignalStrength();
if(lte.getLevel() >= localMaxSignalStrength)
localMaxSignalStrength = lte.getLevel();
Toast.makeText(getApplicationContext(), "lte rssi" + localMaxSignalStrength, Toast.LENGTH_LONG).show();
Android開発者のWebサイトで読んだことから
getAllCellInfo() : プライマリ セルと隣接セルを含む、デバイス上のすべての無線から観測されたすべてのセル情報を返します。このメソッドを呼び出しても、onCellInfoChanged() の呼び出しがトリガーされたり、onCellInfoChanged() が呼び出される速度が変更されたりすることはありません。
リストには、1 つ以上のCellInfoGsm、CellInfoCdma、CellInfoLte、および CellInfoWcdma オブジェクトを任意の組み合わせで含めることができます。
つまり、getAllCellInfo()
1 種類の接続情報だけが返されるわけではありませんが、混在する可能性があります。私の電話が返されたものすべてを使用しているのか、それともそのうちの 1 つだけを使用しているのかを理解したいと思います (後者の場合、使用している電話を見つける方法)。