AndroidのGSMおよびCDMAでセルタワーリストを取得する方法を知っている人はいますか.
Google Maps Locations API を使用しようとしています: https://developers.google.com/maps/documentation/business/geolocation/
そして、これらのフィールドを使用して携帯電話基地局の情報を取得したいと考えています。
- cellId: セルの一意の識別子。GSM では、これはセル ID (CID) です。CDMA ネットワークは、基地局 ID (BID) を使用します。
- locationAreaCode: GSM ネットワークのロケーション エリア コード (LAC)。CDMA ネットワークはネットワーク ID (NID) を使用します。
- mobileCountryCode: セル タワーのモバイル カントリー コード (MCC)。
- mobileNetworkCode: セル タワーのモバイル ネットワーク コード。これは、GSM の MNC、または CDMA のシステム ID (SID) です。
- age: このセルがプライマリになってからのミリ秒数。age が 0 の場合、cellId は現在の測定値を表します。
- signalStrength: dBm で測定された無線信号強度。
- timingAdvance: タイミング アドバンス値。
このコードは、特に携帯電話基地局の情報を取得するわけではありません。
TelephonyManager tel = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
// Type of the network
int phoneTypeInt = tel.getPhoneType();
String phoneType = null;
phoneType = phoneTypeInt == TelephonyManager.PHONE_TYPE_GSM ? "gsm" : phoneType;
phoneType = phoneTypeInt == TelephonyManager.PHONE_TYPE_CDMA ? "cdma" : phoneType;
try {
if (phoneType != null) {
params.put("radioType", phoneType);
}
} catch (Exception e) {}
/*
* The below code doesn't work I think.
*/
JSONArray cellList = new JSONArray();
List<NeighboringCellInfo> neighCells = tel.getNeighboringCellInfo();
for (int i = 0; i < neighCells.size(); i++) {
try {
JSONObject cellObj = new JSONObject();
NeighboringCellInfo thisCell = neighCells.get(i);
cellObj.put("cellId", thisCell.getCid());
cellList.put(cellObj);
} catch (Exception e) {}
}
if (cellList.length() > 0) {
try {
params.put("cellTowers", cellList);
} catch (JSONException e) {}
}
そして、次のようにアクセス許可を設定します。
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
助けてください、ありがとう。