5

現在、Androidをネットワーク内のセルで3倍化しています。思ったよりもさらに正確です。しかし、私が望むほど正確ではありません。したがって、getNeighboringCellInfoから取得するよりも多くのタワーを関与させたいと思います。範囲内のすべてのタワーのセルIDと信号強度を取得したいと思います。すべてのネットワークオペレーターの。タワーを「ping」して、cellID、Lac、signalstrengthで応答する方法はありますか?どういうわけかこれは可能でなければなりません。また、2Gと3G(および4G)を並行してスキャンできますか?または、プログラムでそれらを切り替えることはできますか?助言がありますか?私が十分に明確であることを願っています...

4

2 に答える 2

2

あなたが探しているものTelephonyManagerと思われます。getNeighboringCellInfo()

簡単でわかりやすい例を次に示します。

/* first you wanna get a telephony manager by asking the system service */
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

/* then you can query for all the neighborhood cells */
List<NeighboringCellInfo> neighbors = tm.getNeighboringCellInfo();

/* here's something you can get from NeighboringCellInfo */
for (NeighboringCellInfo n : neighbors) {
    Log.v("CellInfo", "" + n.getCid());
    Log.v("CellInfo", "" + n.getLac());
    Log.v("CellInfo", "" + n.getPsc());
    Log.v("CellInfo", "" + n.getRssi());
}

マニフェスト ファイルには、使用する API に応じてACCESS_COARSE_LOCATIONまたはなど、必要なすべてのアクセス許可が含まれていることを確認してください。そうしないと、単にクラッシュします。READ_PHONE_STATE

ところで、これは 2G でのみ機能します。3G 以上では、この種の操作はサポートされていません。

于 2012-11-12T08:33:18.633 に答える