This example shows how you can get neighboring cell info from GSM Cell ID. TelephonyManager.getNeighboringCellInfo() return a list of neighboring cell information(NeighboringCellInfo), including Received Signal Strength and Cell ID location.
Algorithm:
1.) Create a new project by File-> New -> Android Project name it NeighboringCellInformation.
2.) Write following into main.xml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="NeighboringCell Information" /><TextView android:id="@+id/gsmcelllocation" android:layout_width="fill_parent" android:layout_height="wrap_content" /><TextView android:id="@+id/mcc" android:layout_width="fill_parent" android:layout_height="wrap_content" /><TextView android:id="@+id/mnc" android:layout_width="fill_parent" android:layout_height="wrap_content" /><TextView android:id="@+id/cid" android:layout_width="fill_parent" android:layout_height="wrap_content" /><TextView android:id="@+id/neighboring" android:layout_width="fill_parent" android:layout_height="wrap_content" /></LinearLayout> |
3.) Write following permissions into your manifest file:
1
2
3
4
| <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/><uses-permission android:name="android.permission.INTERNET"/> |
4.) Run for output.
Steps:
1.) Create a project named NeighboringCellInformation and set the information as stated in the image.
Build Target: Android 4.4
Application Name: NeighboringCellInformation
Package Name: com.NeighboringCellInformation
Activity Name: NeighboringCellInformation
Application Name: NeighboringCellInformation
Package Name: com.NeighboringCellInformation
Activity Name: NeighboringCellInformation
2.) Open NeighboringCellInformation.java file and write following code there:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
| package com.neighboringcellinformation;import java.util.List; import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils; import android.app.Activity;import android.content.Context;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.telephony.NeighboringCellInfo;import android.telephony.TelephonyManager;import android.telephony.gsm.GsmCellLocation;import android.view.View;import android.widget.Button;import android.widget.SeekBar;import android.widget.TextView;import android.widget.Toast; public class NeighboringCellInformation extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView textGsmCellLocation = (TextView)findViewById(R.id.gsmcelllocation); TextView textMCC = (TextView)findViewById(R.id.mcc); TextView textMNC = (TextView)findViewById(R.id.mnc); TextView textCID = (TextView)findViewById(R.id.cid); //retrieve a reference to an instance of TelephonyManager TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); GsmCellLocation cellLocation = (GsmCellLocation)telephonyManager.getCellLocation(); String networkOperator = telephonyManager.getNetworkOperator(); String mcc = networkOperator.substring(0, 3); String mnc = networkOperator.substring(3); textMCC.setText("mcc: " + mcc); textMNC.setText("mnc: " + mnc); int cid = cellLocation.getCid(); int lac = cellLocation.getLac(); textGsmCellLocation.setText(cellLocation.toString()); textCID.setText("gsm cell id: " + String.valueOf(cid)); TextView Neighboring = (TextView)findViewById(R.id.neighboring); List<NeighboringCellInfo> NeighboringList = telephonyManager.getNeighboringCellInfo(); String stringNeighboring = "Neighboring List- Lac : Cid : RSSI\n"; for(int i=0; i < NeighboringList.size(); i++){ String dBm; int rssi = NeighboringList.get(i).getRssi(); if(rssi == NeighboringCellInfo.UNKNOWN_RSSI){ dBm = "Unknown RSSI"; }else{ dBm = String.valueOf(-113 + 2 * rssi) + " dBm"; } stringNeighboring = stringNeighboring + String.valueOf(NeighboringList.get(i).getLac()) +" : " + String.valueOf(NeighboringList.get(i).getCid()) +" : " + dBm +"\n"; } Neighboring.setText(stringNeighboring); } } |
3.) Compile and build the project.
Output
Run on Actual device instead of simulator to get correct output.
No comments :
Post a Comment