Merge changes from topic "telephony-debug-pi-tweaks"
* changes: [Telephony Debug Menu] Redo Layout [Telephony Debug Menu] Remove DcRtInfo [Telephony Debug Menu] Remove NeighboringCellInfo [Telephony Debug Menu] Add Link Capacity Estimate [Telephony Debug Menu] Add Physical Channel Config [Telephony Debug Menu] LTE BW and Serving CellInfo
This commit is contained in:
@@ -49,16 +49,10 @@
|
||||
<TextView android:id="@+id/operator" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Signal Strength -->
|
||||
<!-- Roaming -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_signal_strength_label" style="@style/info_label" />
|
||||
<TextView android:id="@+id/dbm" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Voice Service Status -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_gsm_service_label" style="@style/info_label" />
|
||||
<TextView android:id="@+id/gsm" style="@style/info_value" />
|
||||
<TextView android:text="@string/radio_info_roaming_label" style="@style/info_label" />
|
||||
<TextView android:id="@+id/roaming" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Data Service Status -->
|
||||
@@ -67,30 +61,54 @@
|
||||
<TextView android:id="@+id/gprs" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Network Type -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_voice_network_type_label" style="@style/info_label" />
|
||||
<TextView android:id="@+id/voice_network" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Network Type -->
|
||||
<!-- Data Network Type -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_data_network_type_label" style="@style/info_label" />
|
||||
<TextView android:id="@+id/data_network" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Call Status -->
|
||||
<!-- Voice Service Status -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_call_status_label" style="@style/info_label" />
|
||||
<TextView android:id="@+id/call" style="@style/info_value" />
|
||||
<TextView android:text="@string/radio_info_gsm_service_label" style="@style/info_label" />
|
||||
<TextView android:id="@+id/gsm" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Roaming -->
|
||||
<!-- Voice Network Type -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_roaming_label" style="@style/info_label" />
|
||||
<TextView android:id="@+id/roaming" style="@style/info_value" />
|
||||
<TextView android:text="@string/radio_info_voice_network_type_label" style="@style/info_label" />
|
||||
<TextView android:id="@+id/voice_network" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Signal Strength -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_signal_strength_label" style="@style/info_label" />
|
||||
<TextView android:id="@+id/dbm" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Link Bandwidth -->
|
||||
<LinearLayout style="@style/entry_layout" android:orientation="horizontal">
|
||||
<TextView android:text="@string/radio_info_dl_kbps" style="@style/info_label" />
|
||||
<TextView android:id="@+id/dl_kbps" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Link Bandwidth -->
|
||||
<LinearLayout style="@style/entry_layout" android:orientation="horizontal">
|
||||
<TextView android:text="@string/radio_info_ul_kbps" style="@style/info_label" />
|
||||
<TextView android:id="@+id/ul_kbps" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Physical Channel Config -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_phy_chan_config" style="@style/info_label" />
|
||||
<TextView android:id="@+id/phy_chan_config" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Horizontal Rule -->
|
||||
<View
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="1dip"
|
||||
android:background="#000000" />
|
||||
|
||||
<!-- Preferred Network Type -->
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
@@ -110,76 +128,6 @@
|
||||
android:layout_height="1dip"
|
||||
android:background="#000000" />
|
||||
|
||||
<!-- Ping stats -->
|
||||
<Button android:id="@+id/ping_test"
|
||||
android:textSize="14sp"
|
||||
android:layout_marginTop="8dip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/ping_test_label"
|
||||
/>
|
||||
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_ping_hostname_v4" style="@style/info_label" />
|
||||
<TextView android:id="@+id/pingHostnameV4" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_ping_hostname_v6" style="@style/info_label" />
|
||||
<TextView android:id="@+id/pingHostnameV6" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_http_client_test" style="@style/info_label" />
|
||||
<TextView android:id="@+id/httpClientTest" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Horizontal Rule -->
|
||||
<View
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="1dip"
|
||||
android:background="#000000" />
|
||||
|
||||
<!-- DcRtInfo - DataConnectionRealTimeInfo -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_dcrtinfo_label"
|
||||
style="@style/info_label" />
|
||||
<TextView android:id="@+id/dcrtinfo" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Message Waiting Indicator -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_message_waiting_label" style="@style/info_label" />
|
||||
<TextView android:id="@+id/mwi" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Call Forwarding Indicator -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_call_redirect_label" style="@style/info_label" />
|
||||
<TextView android:id="@+id/cfi" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- PPP Sent -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_ppp_sent_label"
|
||||
style="@style/info_label" />
|
||||
<TextView android:id="@+id/sent" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- PPP Received -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_ppp_received_label"
|
||||
style="@style/info_label" />
|
||||
<TextView android:id="@+id/received" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- PPP Sent since last received -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_ppp_resets_label"
|
||||
style="@style/info_label" />
|
||||
<TextView android:id="@+id/sentSinceReceived" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Radio Power -->
|
||||
<Switch android:id="@+id/radio_power"
|
||||
android:textSize="14sp"
|
||||
@@ -220,6 +168,157 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/eab_provisioned_switch_string"/>
|
||||
|
||||
<!-- Horizontal Rule -->
|
||||
<View
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="1dip"
|
||||
android:background="#000000" />
|
||||
|
||||
<!-- Ping stats -->
|
||||
<Button android:id="@+id/ping_test"
|
||||
android:textSize="14sp"
|
||||
android:layout_marginTop="8dip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/ping_test_label"
|
||||
/>
|
||||
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_ping_hostname_v4" style="@style/info_label" />
|
||||
<TextView android:id="@+id/pingHostnameV4" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_ping_hostname_v6" style="@style/info_label" />
|
||||
<TextView android:id="@+id/pingHostnameV6" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_http_client_test" style="@style/info_label" />
|
||||
<TextView android:id="@+id/httpClientTest" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Horizontal Rule -->
|
||||
<View
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="1dip"
|
||||
android:background="#000000" />
|
||||
|
||||
<!-- PPP Sent -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_ppp_sent_label"
|
||||
style="@style/info_label" />
|
||||
<TextView android:id="@+id/sent" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- PPP Received -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_ppp_received_label"
|
||||
style="@style/info_label" />
|
||||
<TextView android:id="@+id/received" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- PPP Sent since last received -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_ppp_resets_label"
|
||||
style="@style/info_label" />
|
||||
<TextView android:id="@+id/sentSinceReceived" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Horizontal Rule -->
|
||||
<View
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="1dip"
|
||||
android:background="#000000" />
|
||||
|
||||
<!-- Call Status -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_call_status_label" style="@style/info_label" />
|
||||
<TextView android:id="@+id/call" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Message Waiting Indicator -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_message_waiting_label" style="@style/info_label" />
|
||||
<TextView android:id="@+id/mwi" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Call Forwarding Indicator -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_call_redirect_label" style="@style/info_label" />
|
||||
<TextView android:id="@+id/cfi" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Horizontal Rule -->
|
||||
<View
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="1dip"
|
||||
android:background="#000000" />
|
||||
|
||||
<!-- CellInfoListRate Selection -->
|
||||
<!-- Location -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_signal_location_label" style="@style/info_label" />
|
||||
<TextView android:id="@+id/location" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/radio_info_cell_info_refresh_rate"
|
||||
style="@style/info_label"
|
||||
/>
|
||||
|
||||
<Spinner android:id="@+id/cell_info_rate_select"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
/>
|
||||
|
||||
<!-- CellInfo -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_cellinfo_label"
|
||||
style="@style/info_label" />
|
||||
</LinearLayout>
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:id="@+id/cellinfo"
|
||||
style="@style/info_value"
|
||||
android:minHeight="300dip"
|
||||
android:textSize="12sp" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Horizontal Rule -->
|
||||
<View
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="1dip"
|
||||
android:background="#000000" />
|
||||
|
||||
<!-- Launch OEM-specific Info/Settings Activity (if any) -->
|
||||
<!-- Carrier Provisioning -->
|
||||
<LinearLayout style="@style/entry_layout"
|
||||
android:orientation="horizontal" >
|
||||
<Button android:id="@+id/carrier_provisioning"
|
||||
android:layout_marginTop="8dip"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/carrier_provisioning"
|
||||
android:textSize="14sp"/>
|
||||
<Button android:id="@+id/trigger_carrier_provisioning"
|
||||
android:layout_marginTop="8dip"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/trigger_carrier_provisioning"
|
||||
android:textSize="14sp"/>
|
||||
<Button android:id="@+id/oem_info"
|
||||
android:layout_marginTop="8dip"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/oem_radio_info_label"
|
||||
android:textSize="14sp"/>
|
||||
</LinearLayout>
|
||||
|
||||
<!-- SMSC -->
|
||||
<RelativeLayout android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
@@ -263,74 +362,6 @@
|
||||
<TextView android:id="@+id/dnsCheckState" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Launch OEM-specific Info/Settings Activity (if any) -->
|
||||
<Button android:id="@+id/oem_info"
|
||||
android:textSize="14sp"
|
||||
android:layout_marginTop="8dip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/oem_radio_info_label"
|
||||
/>
|
||||
|
||||
<!-- Horizontal Rule -->
|
||||
<View
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="1dip"
|
||||
android:background="#000000" />
|
||||
|
||||
<!-- CellInfoListRate Selection -->
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/radio_info_cell_info_refresh_rate"
|
||||
style="@style/info_label"
|
||||
/>
|
||||
|
||||
<Spinner android:id="@+id/cell_info_rate_select"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
/>
|
||||
|
||||
<!-- Location -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_signal_location_label" style="@style/info_label" />
|
||||
<TextView android:id="@+id/location" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Neighboring Cids -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_neighboring_location_label"
|
||||
style="@style/info_label" />
|
||||
<TextView android:id="@+id/neighboring" style="@style/info_value" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- CellInfo -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:text="@string/radio_info_cellinfo_label"
|
||||
style="@style/info_label" />
|
||||
</LinearLayout>
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<TextView android:id="@+id/cellinfo"
|
||||
style="@style/info_value"
|
||||
android:minHeight="300dip"
|
||||
android:textSize="12sp" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Carrier Provisioning -->
|
||||
<LinearLayout style="@style/entry_layout">
|
||||
<Button android:id="@+id/carrier_provisioning"
|
||||
android:layout_marginTop="8dip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/carrier_provisioning"
|
||||
android:textSize="14sp"/>
|
||||
<Button android:id="@+id/trigger_carrier_provisioning"
|
||||
android:layout_marginTop="8dip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/trigger_carrier_provisioning"
|
||||
android:textSize="14sp"/>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
@@ -446,17 +446,19 @@
|
||||
<!-- HTTP proxy settings. Title for Proxy-Auto Config URL. [CHAR LIMIT=25] -->
|
||||
<string name="proxy_url_title">"PAC URL: "</string>
|
||||
|
||||
<!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed -->
|
||||
<string name="radio_info_dl_kbps">DL Bandwidth (kbps):</string>
|
||||
<!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed -->
|
||||
<string name="radio_info_ul_kbps">UL Bandwidth (kbps):</string>
|
||||
<!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed -->
|
||||
<string name="radio_info_signal_location_label">Cell Location Info (deprecated):</string>
|
||||
<!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed -->
|
||||
<string name="radio_info_neighboring_location_label">Neighbor Cell Info (deprecated):</string>
|
||||
<string name="radio_info_phy_chan_config">LTE Physical Channel Configuration:</string>
|
||||
<!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed -->
|
||||
<string name="radio_info_cell_info_refresh_rate">Cell Info Refresh Rate:</string>
|
||||
<!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed -->
|
||||
<string name="radio_info_cellinfo_label">All Cell Measurement Info:</string>
|
||||
<!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed -->
|
||||
<string name="radio_info_dcrtinfo_label">Data Connection Real-Time Info:</string>
|
||||
<!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed -->
|
||||
<string name="radio_info_gprs_service_label">Data Service:</string>
|
||||
<!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed -->
|
||||
<string name="radio_info_roaming_label">Roaming:</string>
|
||||
|
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.settings;
|
||||
|
||||
import static android.net.ConnectivityManager.NetworkCallback;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
@@ -27,6 +29,10 @@ import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Typeface;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.Network;
|
||||
import android.net.NetworkCapabilities;
|
||||
import android.net.NetworkRequest;
|
||||
import android.net.TrafficStats;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncResult;
|
||||
@@ -48,16 +54,16 @@ import android.telephony.CellSignalStrengthCdma;
|
||||
import android.telephony.CellSignalStrengthGsm;
|
||||
import android.telephony.CellSignalStrengthLte;
|
||||
import android.telephony.CellSignalStrengthWcdma;
|
||||
import android.telephony.DataConnectionRealTimeInfo;
|
||||
import android.telephony.NeighboringCellInfo;
|
||||
import android.telephony.PreciseCallState;
|
||||
import android.telephony.PhoneStateListener;
|
||||
import android.telephony.PhysicalChannelConfig;
|
||||
import android.telephony.ServiceState;
|
||||
import android.telephony.SignalStrength;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.telephony.cdma.CdmaCellLocation;
|
||||
import android.telephony.gsm.GsmCellLocation;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
@@ -185,15 +191,16 @@ public class RadioInfo extends Activity {
|
||||
private TextView mMwi;
|
||||
private TextView mCfi;
|
||||
private TextView mLocation;
|
||||
private TextView mNeighboringCids;
|
||||
private TextView mCellInfo;
|
||||
private TextView mDcRtInfoTv;
|
||||
private TextView sent;
|
||||
private TextView received;
|
||||
private TextView mPingHostnameV4;
|
||||
private TextView mPingHostnameV6;
|
||||
private TextView mHttpClientTest;
|
||||
private TextView mPhyChanConfig;
|
||||
private TextView dnsCheckState;
|
||||
private TextView mDownlinkKbps;
|
||||
private TextView mUplinkKbps;
|
||||
private EditText smsc;
|
||||
private Switch radioPowerOnSwitch;
|
||||
private Button cellInfoRefreshRateButton;
|
||||
@@ -211,6 +218,7 @@ public class RadioInfo extends Activity {
|
||||
private Spinner preferredNetworkType;
|
||||
private Spinner cellInfoRefreshRateSpinner;
|
||||
|
||||
private ConnectivityManager mConnectivityManager;
|
||||
private TelephonyManager mTelephonyManager;
|
||||
private ImsManager mImsManager = null;
|
||||
private Phone phone = null;
|
||||
@@ -223,11 +231,23 @@ public class RadioInfo extends Activity {
|
||||
|
||||
private List<CellInfo> mCellInfoResult = null;
|
||||
private CellLocation mCellLocationResult = null;
|
||||
private List<NeighboringCellInfo> mNeighboringCellResult = null;
|
||||
|
||||
private int mPreferredNetworkTypeResult;
|
||||
private int mCellInfoRefreshRateIndex;
|
||||
|
||||
private final NetworkRequest mDefaultNetworkRequest = new NetworkRequest.Builder()
|
||||
.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
|
||||
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
|
||||
.build();
|
||||
|
||||
private final NetworkCallback mNetworkCallback = new NetworkCallback() {
|
||||
public void onCapabilitiesChanged(Network n, NetworkCapabilities nc) {
|
||||
int dlbw = nc.getLinkDownstreamBandwidthKbps();
|
||||
int ulbw = nc.getLinkUpstreamBandwidthKbps();
|
||||
updateBandwidths(dlbw, ulbw);
|
||||
}
|
||||
};
|
||||
|
||||
private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
|
||||
@Override
|
||||
public void onDataConnectionStateChanged(int state) {
|
||||
@@ -275,12 +295,6 @@ public class RadioInfo extends Activity {
|
||||
updateCellInfo(mCellInfoResult);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDataConnectionRealTimeInfoChanged(DataConnectionRealTimeInfo dcRtInfo) {
|
||||
log("onDataConnectionRealTimeInfoChanged: dcRtInfo=" + dcRtInfo);
|
||||
updateDcRtInfoTv(dcRtInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSignalStrengthsChanged(SignalStrength signalStrength) {
|
||||
log("onSignalStrengthChanged: SignalStrength=" +signalStrength);
|
||||
@@ -295,8 +309,29 @@ public class RadioInfo extends Activity {
|
||||
updateNetworkType();
|
||||
updateImsProvisionedState();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPhysicalChannelConfigurationChanged(
|
||||
List<PhysicalChannelConfig> configs) {
|
||||
updatePhysicalChannelConfiguration(configs);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
private void updatePhysicalChannelConfiguration(List<PhysicalChannelConfig> configs) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
String div = "";
|
||||
sb.append("{");
|
||||
if (configs != null) {
|
||||
for(PhysicalChannelConfig c : configs) {
|
||||
sb.append(div).append(c);
|
||||
div = ",";
|
||||
}
|
||||
}
|
||||
sb.append("}");
|
||||
mPhyChanConfig.setText(sb.toString());
|
||||
}
|
||||
|
||||
private void updatePreferredNetworkType(int type) {
|
||||
if (type >= mPreferredNetworkLabels.length || type < 0) {
|
||||
log("EVENT_QUERY_PREFERRED_TYPE_DONE: unknown " +
|
||||
@@ -365,6 +400,7 @@ public class RadioInfo extends Activity {
|
||||
log("Started onCreate");
|
||||
|
||||
mTelephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
|
||||
mConnectivityManager = (ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE);
|
||||
phone = PhoneFactory.getDefaultPhone();
|
||||
|
||||
//TODO: Need to update this if the default phoneId changes?
|
||||
@@ -386,10 +422,8 @@ public class RadioInfo extends Activity {
|
||||
mMwi = (TextView) findViewById(R.id.mwi);
|
||||
mCfi = (TextView) findViewById(R.id.cfi);
|
||||
mLocation = (TextView) findViewById(R.id.location);
|
||||
mNeighboringCids = (TextView) findViewById(R.id.neighboring);
|
||||
mCellInfo = (TextView) findViewById(R.id.cellinfo);
|
||||
mCellInfo.setTypeface(Typeface.MONOSPACE);
|
||||
mDcRtInfoTv = (TextView) findViewById(R.id.dcrtinfo);
|
||||
|
||||
sent = (TextView) findViewById(R.id.sent);
|
||||
received = (TextView) findViewById(R.id.received);
|
||||
@@ -399,6 +433,8 @@ public class RadioInfo extends Activity {
|
||||
mPingHostnameV6 = (TextView) findViewById(R.id.pingHostnameV6);
|
||||
mHttpClientTest = (TextView) findViewById(R.id.httpClientTest);
|
||||
|
||||
mPhyChanConfig = (TextView) findViewById(R.id.phy_chan_config);
|
||||
|
||||
preferredNetworkType = (Spinner) findViewById(R.id.preferredNetworkType);
|
||||
ArrayAdapter<String> adapter = new ArrayAdapter<String> (this,
|
||||
android.R.layout.simple_spinner_item, mPreferredNetworkLabels);
|
||||
@@ -418,6 +454,10 @@ public class RadioInfo extends Activity {
|
||||
|
||||
radioPowerOnSwitch = (Switch) findViewById(R.id.radio_power);
|
||||
|
||||
mDownlinkKbps = (TextView) findViewById(R.id.dl_kbps);
|
||||
mUplinkKbps = (TextView) findViewById(R.id.ul_kbps);
|
||||
updateBandwidths(0, 0);
|
||||
|
||||
pingTestButton = (Button) findViewById(R.id.ping_test);
|
||||
pingTestButton.setOnClickListener(mPingButtonHandler);
|
||||
updateSmscButton = (Button) findViewById(R.id.update_smsc);
|
||||
@@ -467,7 +507,6 @@ public class RadioInfo extends Activity {
|
||||
updateDnsCheckState();
|
||||
updateNetworkType();
|
||||
|
||||
updateNeighboringCids(mNeighboringCellResult);
|
||||
updateLocation(mCellLocationResult);
|
||||
updateCellInfo(mCellInfoResult);
|
||||
|
||||
@@ -501,7 +540,10 @@ public class RadioInfo extends Activity {
|
||||
| PhoneStateListener.LISTEN_CELL_INFO
|
||||
| PhoneStateListener.LISTEN_SERVICE_STATE
|
||||
| PhoneStateListener.LISTEN_SIGNAL_STRENGTHS
|
||||
| PhoneStateListener.LISTEN_DATA_CONNECTION_REAL_TIME_INFO);
|
||||
| PhoneStateListener.LISTEN_PHYSICAL_CHANNEL_CONFIGURATION);
|
||||
|
||||
mConnectivityManager.registerNetworkCallback(
|
||||
mDefaultNetworkRequest, mNetworkCallback, mHandler);
|
||||
|
||||
smsc.clearFocus();
|
||||
}
|
||||
@@ -514,6 +556,8 @@ public class RadioInfo extends Activity {
|
||||
|
||||
mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
|
||||
mTelephonyManager.setCellInfoListRate(CELL_INFO_LIST_RATE_DISABLED);
|
||||
mConnectivityManager.unregisterNetworkCallback(mNetworkCallback);
|
||||
|
||||
}
|
||||
|
||||
private void restoreFromBundle(Bundle b) {
|
||||
@@ -593,6 +637,14 @@ public class RadioInfo extends Activity {
|
||||
"0.0.0.0 allowed" :"0.0.0.0 not allowed");
|
||||
}
|
||||
|
||||
private void updateBandwidths(int dlbw, int ulbw) {
|
||||
dlbw = (dlbw < 0 || dlbw == Integer.MAX_VALUE) ? -1 : dlbw;
|
||||
ulbw = (ulbw < 0 || ulbw == Integer.MAX_VALUE) ? -1 : ulbw;
|
||||
mDownlinkKbps.setText(String.format("%-5d", dlbw));
|
||||
mUplinkKbps.setText(String.format("%-5d", ulbw));
|
||||
}
|
||||
|
||||
|
||||
private final void
|
||||
updateSignalStrength(SignalStrength signalStrength) {
|
||||
Resources r = getResources();
|
||||
@@ -648,23 +700,6 @@ public class RadioInfo extends Activity {
|
||||
|
||||
}
|
||||
|
||||
private final void updateNeighboringCids(List<NeighboringCellInfo> cids) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
if (cids != null) {
|
||||
if (cids.isEmpty()) {
|
||||
sb.append("no neighboring cells");
|
||||
} else {
|
||||
for (NeighboringCellInfo cell : cids) {
|
||||
sb.append(cell.toString()).append(" ");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
sb.append("unknown");
|
||||
}
|
||||
mNeighboringCids.setText(sb.toString());
|
||||
}
|
||||
|
||||
private final String getCellInfoDisplayString(int i) {
|
||||
return (i != Integer.MAX_VALUE) ? Integer.toString(i) : "";
|
||||
}
|
||||
@@ -673,12 +708,34 @@ public class RadioInfo extends Activity {
|
||||
return (i != Long.MAX_VALUE) ? Long.toString(i) : "";
|
||||
}
|
||||
|
||||
private final String getConnectionStatusString(CellInfo ci) {
|
||||
String regStr = "";
|
||||
String connStatStr = "";
|
||||
String connector = "";
|
||||
|
||||
if (ci.isRegistered()) {
|
||||
regStr = "R";
|
||||
}
|
||||
switch (ci.getCellConnectionStatus()) {
|
||||
case CellInfo.CONNECTION_PRIMARY_SERVING: connStatStr = "P"; break;
|
||||
case CellInfo.CONNECTION_SECONDARY_SERVING: connStatStr = "S"; break;
|
||||
case CellInfo.CONNECTION_NONE: connStatStr = "N"; break;
|
||||
case CellInfo.CONNECTION_UNKNOWN: /* Field is unsupported */ break;
|
||||
default: break;
|
||||
}
|
||||
if (!TextUtils.isEmpty(regStr) && !TextUtils.isEmpty(connStatStr)) {
|
||||
connector = "+";
|
||||
}
|
||||
|
||||
return regStr + connector + connStatStr;
|
||||
}
|
||||
|
||||
private final String buildCdmaInfoString(CellInfoCdma ci) {
|
||||
CellIdentityCdma cidCdma = ci.getCellIdentity();
|
||||
CellSignalStrengthCdma ssCdma = ci.getCellSignalStrength();
|
||||
|
||||
return String.format("%-3.3s %-5.5s %-5.5s %-5.5s %-6.6s %-6.6s %-6.6s %-6.6s %-5.5s",
|
||||
ci.isRegistered() ? "S " : " ",
|
||||
getConnectionStatusString(ci),
|
||||
getCellInfoDisplayString(cidCdma.getSystemId()),
|
||||
getCellInfoDisplayString(cidCdma.getNetworkId()),
|
||||
getCellInfoDisplayString(cidCdma.getBasestationId()),
|
||||
@@ -694,7 +751,7 @@ public class RadioInfo extends Activity {
|
||||
CellSignalStrengthGsm ssGsm = ci.getCellSignalStrength();
|
||||
|
||||
return String.format("%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-6.6s %-4.4s %-4.4s\n",
|
||||
ci.isRegistered() ? "S " : " ",
|
||||
getConnectionStatusString(ci),
|
||||
getCellInfoDisplayString(cidGsm.getMcc()),
|
||||
getCellInfoDisplayString(cidGsm.getMnc()),
|
||||
getCellInfoDisplayString(cidGsm.getLac()),
|
||||
@@ -709,14 +766,15 @@ public class RadioInfo extends Activity {
|
||||
CellSignalStrengthLte ssLte = ci.getCellSignalStrength();
|
||||
|
||||
return String.format(
|
||||
"%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-3.3s %-6.6s %-4.4s %-4.4s %-2.2s\n",
|
||||
ci.isRegistered() ? "S " : " ",
|
||||
"%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-3.3s %-6.6s %-2.2s %-4.4s %-4.4s %-2.2s\n",
|
||||
getConnectionStatusString(ci),
|
||||
getCellInfoDisplayString(cidLte.getMcc()),
|
||||
getCellInfoDisplayString(cidLte.getMnc()),
|
||||
getCellInfoDisplayString(cidLte.getTac()),
|
||||
getCellInfoDisplayString(cidLte.getCi()),
|
||||
getCellInfoDisplayString(cidLte.getPci()),
|
||||
getCellInfoDisplayString(cidLte.getEarfcn()),
|
||||
getCellInfoDisplayString(cidLte.getBandwidth()),
|
||||
getCellInfoDisplayString(ssLte.getDbm()),
|
||||
getCellInfoDisplayString(ssLte.getRsrq()),
|
||||
getCellInfoDisplayString(ssLte.getTimingAdvance()));
|
||||
@@ -727,7 +785,7 @@ public class RadioInfo extends Activity {
|
||||
CellSignalStrengthWcdma ssWcdma = ci.getCellSignalStrength();
|
||||
|
||||
return String.format("%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-6.6s %-3.3s %-4.4s\n",
|
||||
ci.isRegistered() ? "S " : " ",
|
||||
getConnectionStatusString(ci),
|
||||
getCellInfoDisplayString(cidWcdma.getMcc()),
|
||||
getCellInfoDisplayString(cidWcdma.getMnc()),
|
||||
getCellInfoDisplayString(cidWcdma.getLac()),
|
||||
@@ -759,17 +817,21 @@ public class RadioInfo extends Activity {
|
||||
}
|
||||
if (lteCells.length() != 0) {
|
||||
value += String.format(
|
||||
"LTE\n%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-3.3s %-6.6s %-4.4s %-4.4s %-2.2s\n",
|
||||
"SRV", "MCC", "MNC", "TAC", "CID", "PCI", "EARFCN", "RSRP", "RSRQ", "TA");
|
||||
"LTE\n%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-3.3s"
|
||||
+ " %-6.6s %-2.2s %-4.4s %-4.4s %-2.2s\n",
|
||||
"SRV", "MCC", "MNC", "TAC", "CID", "PCI",
|
||||
"EARFCN", "BW", "RSRP", "RSRQ", "TA");
|
||||
value += lteCells.toString();
|
||||
}
|
||||
if (wcdmaCells.length() != 0) {
|
||||
value += String.format("WCDMA\n%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-6.6s %-3.3s %-4.4s\n",
|
||||
value += String.format(
|
||||
"WCDMA\n%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-6.6s %-3.3s %-4.4s\n",
|
||||
"SRV", "MCC", "MNC", "LAC", "CID", "UARFCN", "PSC", "RSCP");
|
||||
value += wcdmaCells.toString();
|
||||
}
|
||||
if (gsmCells.length() != 0) {
|
||||
value += String.format("GSM\n%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-6.6s %-4.4s %-4.4s\n",
|
||||
value += String.format(
|
||||
"GSM\n%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-6.6s %-4.4s %-4.4s\n",
|
||||
"SRV", "MCC", "MNC", "LAC", "CID", "ARFCN", "BSIC", "RSSI");
|
||||
value += gsmCells.toString();
|
||||
}
|
||||
@@ -790,10 +852,6 @@ public class RadioInfo extends Activity {
|
||||
mCellInfo.setText(buildCellInfoString(arrayCi));
|
||||
}
|
||||
|
||||
private final void updateDcRtInfoTv(DataConnectionRealTimeInfo dcRtInfo) {
|
||||
mDcRtInfoTv.setText(dcRtInfo.toString());
|
||||
}
|
||||
|
||||
private final void
|
||||
updateMessageWaiting() {
|
||||
mMwi.setText(String.valueOf(mMwiValue));
|
||||
@@ -986,12 +1044,10 @@ public class RadioInfo extends Activity {
|
||||
private final void updateAllCellInfo() {
|
||||
|
||||
mCellInfo.setText("");
|
||||
mNeighboringCids.setText("");
|
||||
mLocation.setText("");
|
||||
|
||||
final Runnable updateAllCellInfoResults = new Runnable() {
|
||||
public void run() {
|
||||
updateNeighboringCids(mNeighboringCellResult);
|
||||
updateLocation(mCellLocationResult);
|
||||
updateCellInfo(mCellInfoResult);
|
||||
}
|
||||
@@ -1002,7 +1058,6 @@ public class RadioInfo extends Activity {
|
||||
public void run() {
|
||||
mCellInfoResult = mTelephonyManager.getAllCellInfo();
|
||||
mCellLocationResult = mTelephonyManager.getCellLocation();
|
||||
mNeighboringCellResult = mTelephonyManager.getNeighboringCellInfo();
|
||||
|
||||
mHandler.post(updateAllCellInfoResults);
|
||||
}
|
||||
|
Reference in New Issue
Block a user