Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.planetcellinc.routertest.router;
- import android.content.Context;
- import android.support.annotation.NonNull;
- import android.support.annotation.Nullable;
- import android.util.Log;
- import android.widget.Toast;
- import com.android.volley.DefaultRetryPolicy;
- import com.android.volley.Request;
- import com.android.volley.Response;
- import com.android.volley.VolleyError;
- import com.android.volley.toolbox.JsonObjectRequest;
- import com.planetcellinc.routertest.Constants;
- import com.planetcellinc.routertest.MySingleton;
- import com.planetcellinc.routertest.StatusCodes;
- import com.planetcellinc.routertest.utils.JsonUtils;
- import com.planetcellinc.routertest.utils.UrlUtils;
- import org.json.JSONArray;
- import org.json.JSONException;
- import org.json.JSONObject;
- /**
- * Created by Benjamin Humpton on 11/10/17.
- * ©2017 Benjamin Humpton, Planet Cellular Inc.
- */
- public class DeviceBasicSettings {
- private static final String TAG = DeviceBasicSettings.class.getSimpleName();
- private static final int TYPE_GET_CPE_DEVICE_INFORMATION = 0;
- private static final int TYPE_FIRMWARE_OTA_UPDATE = 1;
- private static final int TYPE_REBOOT = 2;
- private static final int TYPE_RESET_TO_FACTORY_SETTINGS = 3;
- private static final int TYPE_LOGIN = 4;
- private static final int TYPE_LOGOUT = 5;
- private static final int TYPE_MODIFY_LOGIN_PASSWORD = 6;
- private static final int TYPE_GET_NETWORK_INFORMATION = 7;
- private static final int TYPE_GET_DATA_STATISTICS_INFORMATION = 8;
- private static final int TYPE_RESET_DATA_STATISTICS = 9;
- private static final int TYPE_GET_CONNECTED_CLIENTS_INFORMATION = 10;
- private static final int TYPE_GET_DIAL_STATUS = 11;
- private static final int TYPE_GET_MOBILE_DATA_SWITCH_STATUS = 12;
- private static final int TYPE_CONFIG_MOBILE_DATA_SWITCH = 13;
- private static final int TYPE_GET_ROAMING_SWITCH_STATUS = 14;
- private static final int TYPE_CONFIG_ROAMING_SWITCH = 15;
- private static final int TYPE_GET_APN_PROFILE_SETTINGS = 16;
- private static final int TYPE_ADD_NEW_APN_PROFILE = 17;
- private static final int TYPE_MODIFY_PROFILE_SETTINGS = 18;
- private static final int TYPE_DELETE_APN_PROFILE = 19;
- private static final int TYPE_GET_SIM_CARD_STATUS = 20;
- private static final int TYPE_GET_RF_INFORMATION = 21;
- // network type
- private static final int NETWORK_TYPE_NO_SERVICES = 0;
- private static final int NETWORK_TYPE_CDMA = 1;
- private static final int NETWORK_TYPE_EVDO = 2;
- private static final int NETWORK_TYPE_GSM = 3;
- private static final int NETWORK_TYPE_WCDMA = 4;
- private static final int NETWORK_TYPE_LTE = 5;
- private static final int NETWORK_TYPE_TDSCDMA = 6;
- private static final int NETWORK_TYPE_LIMITED_CDMA = 7;
- private static final int NETWORK_TYPE_LIMITED_EVDO = 8;
- private static final int NETWORK_TYPE_LIMITED_GSM = 9;
- private static final int NETWORK_TYPE_LIMITED_WCDMA = 10;
- private static final int NETWORK_TYPE_LIMITED_LTE = 11;
- private static final int NETWORK_TYPE_LIMITED_TDSCDMA = 12;
- private static final int NETWORK_TYPE_LIMITED_REGIONAL_CDMA = 13;
- private static final int NETWORK_TYPE_LIMITED_REGIONAL_EVDO = 14;
- private static final int NETWORK_TYPE_LIMITED_REGIONAL_GSM = 15;
- private static final int NETWORK_TYPE_LIMITED_REGIONAL_WCDMA = 16;
- private static final int NETWORK_TYPE_LIMITED_REGIONAL_LTE = 17;
- private static final int NETWORK_TYPE_LIMITED_REGIONAL_TDSCDMA = 18;
- // roaming status
- private static final int ROAMING_STATUS_ROAM_OFF = 0;
- private static final int ROAMING_STATUS_ROAMING = 1;
- private static final int ROAMING_STATUS_ROAM_BLINKING = 2;
- private static final int ROAMING_STATUS_ROAM_OUT_OF_THE_NEIGHBORHOOD = 3;
- private static final int ROAMING_STATUS_ROAM_OUT_OF_THE_BUILDING = 4;
- private static final int ROAMING_STATUS_ROAM_PREFERRED_SYSTEM = 5;
- private static final int ROAMING_STATUS_ROAM_AVAILABLE_SYSTEM = 6;
- private static final int ROAMING_STATUS_ROAM_ALLIANCE_PARTNER = 7;
- private static final int ROAMING_STATUS_ROAM_PREMIUM_PARTNER = 8;
- private static final int ROAMING_STATUS_ROAM_FULL_SERVICE = 9;
- private static final int ROAMING_STATUS_ROAM_PARTIAL_SERVICE = 10;
- private static final int ROAMING_STATUS_ROAM_BANNER_IS_ON = 11;
- private static final int ROAMING_STATUS_ROAM_BANNER_IS_OFF = 12;
- // dial status
- private static final int DIAL_STATUS_DIALING = 100001;
- private static final int DIAL_STATUS_CONNECTED = 100002;
- private static final int DIAL_STATUS_DISCONNECTING = 100003;
- private static final int DIAL_STATUS_DISCONNECTED = 100004;
- // mobile data switch status
- private static final int MOBILE_DATA_SWITCH_STATUS_CLOSED = 0;
- private static final int MOBILE_DATA_SWITCH_STATUS_OPEN = 1;
- // roaming switch status
- private static final int ROAMING_SWITCH_STATUS_CLOSED = 0;
- private static final int ROAMING_SWITCH_STATUS_OPEN = 1;
- // ip type
- private static final int IP_TYPE_IPV4 = 4;
- private static final int IP_TYPE_IPV6 = 6;
- private static final int IP_TYPE_V4V6 = 10;
- // sim card status
- private static final int SIM_CARD_STATUS_NO_SIM_CARD = 0;
- private static final int SIM_CARD_STATUS_SIM_CARD_PIN_LOCK = 1;
- private static final int SIM_CARD_STATUS_SIM_CARD_PUK_LOCK = 2;
- private static final int SIM_CARD_STATUS_SIM_CARD_READY = 144;
- private Context mContext;
- public DeviceBasicSettings(Context context) {
- mContext = context;
- }
- private void startJsonRequest(@NonNull String url, @Nullable JSONObject requestParams, final int type, final int timeout) {
- if (!UrlUtils.isUrlValid(url)) {
- throw new IllegalArgumentException("Invalid URL");
- } else {
- url = UrlUtils.formatUrl(url);
- JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.POST, url, requestParams, new Response.Listener<JSONObject>() {
- @Override
- public void onResponse(JSONObject response) {
- handleResponse(response, type);
- }
- }, new Response.ErrorListener() {
- @Override
- public void onErrorResponse(VolleyError error) {
- handleError(error, type);
- }
- });
- jsObjRequest.setRetryPolicy(new DefaultRetryPolicy(timeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
- MySingleton.getInstance(mContext).addToRequestQueue(jsObjRequest);
- }
- }
- private void handleResponse(JSONObject response, int type) {
- if (response != null) {
- try {
- if (response.has("retcode")) {
- int retcode = response.getInt("retcode");
- Log.d(TAG, "Request of type: " + String.valueOf(type) + " - status: " + StatusCodes.getStatus(retcode));
- }
- switch (type) {
- case TYPE_GET_CPE_DEVICE_INFORMATION:
- // software version
- if (response.has("softwareVersion")) {
- String softwareVersion = response.getString("softwareVersion");
- Toast.makeText(mContext, "Software version: " + softwareVersion, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"softwareVersion\"");
- }
- // software extend version
- if (response.has("softwareVersionEx")) {
- String softwareVersionEx = response.getString("softwareVersionEx");
- Toast.makeText(mContext, "Software extend version: " + softwareVersionEx, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"softwareVersionEx\"");
- }
- // hardware version
- if (response.has("hardwareVersion")) {
- String hardwareVersion = response.getString("hardwareVersion");
- Toast.makeText(mContext, "Hardware version: " + hardwareVersion, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"hardwareVersion\"");
- }
- // device name
- if (response.has("deviceName")) {
- String deviceName = response.getString("deviceName");
- Toast.makeText(mContext, "Device name: " + deviceName, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"deviceName\"");
- }
- // mac address
- if (response.has("lanMac")) {
- String lanMac = response.getString("lanMac");
- Toast.makeText(mContext, "Mac address: " + lanMac, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"lanMac\"");
- }
- // imei
- if (response.has("imei")) {
- String imei = response.getString("imei");
- Toast.makeText(mContext, "IMEI: " + imei, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"imei\"");
- }
- // meid
- if (response.has("meid")) {
- String meid = response.getString("meid");
- Toast.makeText(mContext, "MEID: " + meid, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"meid\"");
- }
- break;
- case TYPE_FIRMWARE_OTA_UPDATE:
- // TODO: something
- break;
- case TYPE_REBOOT:
- // TODO: something
- break;
- case TYPE_RESET_TO_FACTORY_SETTINGS:
- // TODO: something
- break;
- case TYPE_LOGIN:
- // TODO: something
- break;
- case TYPE_LOGOUT:
- // TODO: something
- break;
- case TYPE_MODIFY_LOGIN_PASSWORD:
- // TODO: something
- break;
- case TYPE_GET_NETWORK_INFORMATION:
- // carrier name
- if (response.has("operatorName")) {
- String operatorName = response.getString("operatorName");
- Toast.makeText(mContext, "Carrier name: " + operatorName, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"operatorName\"");
- }
- // network type
- if (response.has("networkType")) {
- int networkType = response.getInt("networkType");
- String msg;
- switch (networkType) {
- case NETWORK_TYPE_NO_SERVICES:
- msg = "NO SERVICES";
- break;
- case NETWORK_TYPE_CDMA:
- msg = "CDMA";
- break;
- case NETWORK_TYPE_EVDO:
- msg = "EVDO";
- break;
- case NETWORK_TYPE_GSM:
- msg = "GSM";
- break;
- case NETWORK_TYPE_WCDMA:
- msg = "WCDMA";
- break;
- case NETWORK_TYPE_LTE:
- msg = "LTE";
- break;
- case NETWORK_TYPE_TDSCDMA:
- msg = "TDSCDMA";
- break;
- case NETWORK_TYPE_LIMITED_CDMA:
- msg = "LIMITED CDMA";
- break;
- case NETWORK_TYPE_LIMITED_EVDO:
- msg = "LIMITED EVDO";
- break;
- case NETWORK_TYPE_LIMITED_GSM:
- msg = "LIMITED GSM";
- break;
- case NETWORK_TYPE_LIMITED_WCDMA:
- msg = "LIMITED WCDMA";
- break;
- case NETWORK_TYPE_LIMITED_LTE:
- msg = "LIMITED LTE";
- break;
- case NETWORK_TYPE_LIMITED_TDSCDMA:
- msg = "LIMITED TDSCDMA";
- break;
- case NETWORK_TYPE_LIMITED_REGIONAL_CDMA:
- msg = "LIMITED REGIONAL CDMA";
- break;
- case NETWORK_TYPE_LIMITED_REGIONAL_EVDO:
- msg = "LIMITED REGIONAL EVDO";
- break;
- case NETWORK_TYPE_LIMITED_REGIONAL_GSM:
- msg = "LIMITED REGIONAL GSM";
- break;
- case NETWORK_TYPE_LIMITED_REGIONAL_WCDMA:
- msg = "LIMITED REGIONAL WCDMA";
- break;
- case NETWORK_TYPE_LIMITED_REGIONAL_LTE:
- msg = "LIMITED REGIONAL LTE";
- break;
- case NETWORK_TYPE_LIMITED_REGIONAL_TDSCDMA:
- msg = "LIMITED REGIONAL TDSCDMA";
- break;
- default:
- msg = "UNKNOWN";
- break;
- }
- Toast.makeText(mContext, "Network type: " + msg, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"networkType\"");
- }
- // signal level
- if (response.has("sigLevel")) {
- int sigLevel = response.getInt("sigLevel");
- // should only return values between 0 and 5
- if (sigLevel < 0 || sigLevel > 5) {
- sigLevel = -1;
- }
- Toast.makeText(mContext, "signal level: " + String.valueOf(sigLevel), Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"sigLevel\"");
- }
- // roaming status
- if (response.has("roamStatus")) {
- int roamStatus = response.getInt("roamStatus");
- String msg;
- switch (roamStatus) {
- case ROAMING_STATUS_ROAM_OFF:
- msg = "ROAM OFF";
- break;
- case ROAMING_STATUS_ROAMING:
- msg = "ROAMING";
- break;
- case ROAMING_STATUS_ROAM_BLINKING:
- msg = "ROAM BLINKING";
- break;
- case ROAMING_STATUS_ROAM_OUT_OF_THE_NEIGHBORHOOD:
- msg = "ROAM OUT OF THE NEIGHBORHOOD";
- break;
- case ROAMING_STATUS_ROAM_OUT_OF_THE_BUILDING:
- msg = "ROAM OUT OF THE BUILDING";
- break;
- case ROAMING_STATUS_ROAM_PREFERRED_SYSTEM:
- msg = "ROAM PREFERRED SYSTEM";
- break;
- case ROAMING_STATUS_ROAM_AVAILABLE_SYSTEM:
- msg = "ROAM AVAILABLE SYSTEM";
- break;
- case ROAMING_STATUS_ROAM_ALLIANCE_PARTNER:
- msg = "ROAM ALLIANCE PARTNER";
- break;
- case ROAMING_STATUS_ROAM_PREMIUM_PARTNER:
- msg = "ROAM PREMIUM PARTNER";
- break;
- case ROAMING_STATUS_ROAM_FULL_SERVICE:
- msg = "ROAM FULL SERVICE";
- break;
- case ROAMING_STATUS_ROAM_PARTIAL_SERVICE:
- msg = "ROAM PARTIAL SERVICE";
- break;
- case ROAMING_STATUS_ROAM_BANNER_IS_ON:
- msg = "ROAM BANNER IS ON";
- break;
- case ROAMING_STATUS_ROAM_BANNER_IS_OFF:
- msg = "ROAM BANNER IS OFF";
- break;
- default:
- msg = "UNKNOWN";
- break;
- }
- Toast.makeText(mContext, "Roaming status: " + roamStatus, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"roamStatus\"");
- }
- break;
- case TYPE_GET_DATA_STATISTICS_INFORMATION:
- // UL data
- if (response.has("flowtx")) {
- String flowtx = response.getString("flowtx");
- Toast.makeText(mContext, "UL data: " + flowtx, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"flowtx\"");
- }
- // DL data
- if (response.has("flowrx")) {
- String flowrx = response.getString("flowrx");
- Toast.makeText(mContext, "DL data: " + flowrx, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"flowrx\"");
- }
- // total data
- if (response.has("flowtotal")) {
- String flowtotal = response.getString("flowtotal");
- Toast.makeText(mContext, "Total data: " + flowtotal, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"flowtotal\"");
- }
- break;
- case TYPE_RESET_DATA_STATISTICS:
- // TODO: something
- break;
- case TYPE_GET_CONNECTED_CLIENTS_INFORMATION:
- if (response.has("clientList")) {
- JSONArray clientList = response.getJSONArray("clientList");
- Toast.makeText(mContext, "clientList length: " + String.valueOf(clientList.length()), Toast.LENGTH_SHORT).show();
- for (int i = 0; i < clientList.length(); i++) {
- JSONObject obj = clientList.getJSONObject(i);
- // mac address
- if (obj.has("mac")) {
- String mac = obj.getString("mac");
- Toast.makeText(mContext, "object " + String.valueOf(i) + " mac address: " + mac, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "object " + String.valueOf(i) + " does not have \"mac\"");
- }
- // allocated ip address
- if (obj.has("ip")) {
- String ip = obj.getString("ip");
- Toast.makeText(mContext, "object " + String.valueOf(i) + " ip address: " + ip, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "object " + String.valueOf(i) + " does not have \"ip\"");
- }
- // device name
- if (obj.has("hostname")) {
- String hostname = obj.getString("hostname");
- Toast.makeText(mContext, "object " + String.valueOf(i) + " device name: " + hostname, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "object " + String.valueOf(i) + " does not have \"hostname\"");
- }
- // device type
- if (obj.has("type")) {
- String devicetype = obj.getString("type");
- Toast.makeText(mContext, "object " + String.valueOf(i) + " device type: " + devicetype, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "object " + String.valueOf(i) + " does not have \"type\"");
- }
- }
- } else {
- Log.e(TAG, "response does not have \"clientList\"");
- }
- break;
- case TYPE_GET_DIAL_STATUS:
- if (response.has("status")) {
- int status = response.getInt("status");
- String msg;
- switch (status) {
- case DIAL_STATUS_DIALING:
- msg = "DIALING";
- break;
- case DIAL_STATUS_CONNECTED:
- msg = "CONNECTED";
- break;
- case DIAL_STATUS_DISCONNECTING:
- msg = "DISCONNECTING";
- break;
- case DIAL_STATUS_DISCONNECTED:
- msg = "DISCONNECTED";
- break;
- default:
- msg = "UNKNOWN";
- break;
- }
- Toast.makeText(mContext, "dial status: " + msg, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"status\"");
- }
- break;
- case TYPE_GET_MOBILE_DATA_SWITCH_STATUS:
- if (response.has("status")) {
- int status = response.getInt("status");
- String msg;
- if (status == MOBILE_DATA_SWITCH_STATUS_CLOSED) {
- msg = "CLOSED";
- } else if (status == MOBILE_DATA_SWITCH_STATUS_OPEN) {
- msg = "OPEN";
- } else {
- msg = "UNKNOWN";
- }
- Toast.makeText(mContext, "mobile data switch status: " + msg, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"status\"");
- }
- break;
- case TYPE_CONFIG_MOBILE_DATA_SWITCH:
- // TODO: something
- break;
- case TYPE_GET_ROAMING_SWITCH_STATUS:
- if (response.has("status")) {
- int status = response.getInt("status");
- String msg;
- if (status == ROAMING_SWITCH_STATUS_CLOSED) {
- msg = "CLOSED";
- } else if (status == ROAMING_SWITCH_STATUS_OPEN) {
- msg = "OPEN";
- } else {
- msg = "UNKNOWN";
- }
- Toast.makeText(mContext, "allow roaming switch status: " + msg, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"status\"");
- }
- break;
- case TYPE_CONFIG_ROAMING_SWITCH:
- // TODO: something
- break;
- case TYPE_GET_APN_PROFILE_SETTINGS:
- // current used profile index
- if (response.has("curid")) {
- int curid = response.getInt("curid");
- Toast.makeText(mContext, "current used profile index: " + String.valueOf(curid), Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"curid\"");
- }
- // profile list
- if (response.has("profileList")) {
- JSONArray profileList = response.getJSONArray("profileList");
- Toast.makeText(mContext, "profileList length: " + String.valueOf(profileList.length()), Toast.LENGTH_SHORT).show();
- for (int i = 0; i < profileList.length(); i++) {
- JSONObject obj = profileList.getJSONObject(i);
- // profile index
- if (obj.has("index")) {
- int index = obj.getInt("index");
- Toast.makeText(mContext, "object " + String.valueOf(i) + " profile index: " + String.valueOf(index), Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "object " + String.valueOf(i) + " does not have \"index\"");
- }
- // user name
- if (obj.has("username")) {
- String username = obj.getString("username");
- Toast.makeText(mContext, "object " + String.valueOf(i) + " username: " + username, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "object " + String.valueOf(i) + " does not have \"username\"");
- }
- // password
- if (obj.has("password")) {
- String password = obj.getString("password");
- Toast.makeText(mContext, "object " + String.valueOf(i) + " password: " + password, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "object " + String.valueOf(i) + " does not have \"password\"");
- }
- // apn
- if (obj.has("apn")) {
- String apn = obj.getString("apn");
- Toast.makeText(mContext, "object " + String.valueOf(i) + " apn: " + apn, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "object " + String.valueOf(i) + " does not have \"apn\"");
- }
- // authorization of modify
- if (obj.has("readonly")) {
- int readonly = obj.getInt("readonly");
- Toast.makeText(mContext, "object " + String.valueOf(i) + " read only: " + String.valueOf(readonly), Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "object " + String.valueOf(i) + " does not have \"readonly\"");
- }
- // authentication type
- if (obj.has("authmode")) {
- int authmode = obj.getInt("authmode");
- Toast.makeText(mContext, "object " + String.valueOf(i) + " authentication type: " + String.valueOf(authmode), Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "object " + String.valueOf(i) + " does not have \"authmode\"");
- }
- // ip type
- if (obj.has("iptype")) {
- int iptype = obj.getInt("iptype");
- String msg;
- switch (iptype) {
- case IP_TYPE_IPV4:
- msg = "IPV4";
- break;
- case IP_TYPE_IPV6:
- msg = "IPV6";
- break;
- case IP_TYPE_V4V6:
- msg = "V4V6";
- break;
- default:
- msg = "UNKNOWN";
- break;
- }
- Toast.makeText(mContext, "object " + String.valueOf(i) + " ip type: " + msg, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "object " + String.valueOf(i) + " does not have \"iptype\"");
- }
- }
- }
- break;
- case TYPE_ADD_NEW_APN_PROFILE:
- // TODO: something
- break;
- case TYPE_MODIFY_PROFILE_SETTINGS:
- // TODO: something
- break;
- case TYPE_DELETE_APN_PROFILE:
- // TODO: something
- break;
- case TYPE_GET_SIM_CARD_STATUS:
- // sim card status
- if (response.has("status")) {
- int status = response.getInt("status");
- String msg;
- switch (status) {
- case SIM_CARD_STATUS_NO_SIM_CARD:
- msg = "NO SIM CARD";
- break;
- case SIM_CARD_STATUS_SIM_CARD_PIN_LOCK:
- msg = "SIM CARD PIN LOCK";
- break;
- case SIM_CARD_STATUS_SIM_CARD_PUK_LOCK:
- msg = "SIM CARD PUK LOCK";
- break;
- case SIM_CARD_STATUS_SIM_CARD_READY:
- msg = "SIM CARD READY";
- break;
- default:
- msg = "UNKNOWN";
- break;
- }
- Toast.makeText(mContext, "sim card status: " + msg, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"status\"");
- }
- // sim card imsi number
- if (response.has("imsi")) {
- String imsi = response.getString("imsi");
- Toast.makeText(mContext, "sim card imsi number: " + imsi, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"imsi\"");
- }
- break;
- case TYPE_GET_RF_INFORMATION:
- // network type
- if (response.has("mode")) {
- int mode = response.getInt("mode");
- String msg;
- switch (mode) {
- case NETWORK_TYPE_NO_SERVICES:
- msg = "NO SERVICES";
- break;
- case NETWORK_TYPE_CDMA:
- msg = "CDMA";
- break;
- case NETWORK_TYPE_EVDO:
- msg = "EVDO";
- break;
- case NETWORK_TYPE_GSM:
- msg = "GSM";
- break;
- case NETWORK_TYPE_WCDMA:
- msg = "WCDMA";
- break;
- case NETWORK_TYPE_LTE:
- msg = "LTE";
- break;
- case NETWORK_TYPE_TDSCDMA:
- msg = "TDSCDMA";
- break;
- case NETWORK_TYPE_LIMITED_CDMA:
- msg = "LIMITED CDMA";
- break;
- case NETWORK_TYPE_LIMITED_EVDO:
- msg = "LIMITED EVDO";
- break;
- case NETWORK_TYPE_LIMITED_GSM:
- msg = "LIMITED GSM";
- break;
- case NETWORK_TYPE_LIMITED_WCDMA:
- msg = "LIMITED WCDMA";
- break;
- case NETWORK_TYPE_LIMITED_LTE:
- msg = "LIMITED LTE";
- break;
- case NETWORK_TYPE_LIMITED_TDSCDMA:
- msg = "LIMITED TDSCDMA";
- break;
- case NETWORK_TYPE_LIMITED_REGIONAL_CDMA:
- msg = "LIMITED REGIONAL CDMA";
- break;
- case NETWORK_TYPE_LIMITED_REGIONAL_EVDO:
- msg = "LIMITED REGIONAL EVDO";
- break;
- case NETWORK_TYPE_LIMITED_REGIONAL_GSM:
- msg = "LIMITED REGIONAL GSM";
- break;
- case NETWORK_TYPE_LIMITED_REGIONAL_WCDMA:
- msg = "LIMITED REGIONAL WCDMA";
- break;
- case NETWORK_TYPE_LIMITED_REGIONAL_LTE:
- msg = "LIMITED REGIONAL LTE";
- break;
- case NETWORK_TYPE_LIMITED_REGIONAL_TDSCDMA:
- msg = "LIMITED REGIONAL TDSCDMA";
- break;
- default:
- msg = "UNKNOWN";
- break;
- }
- Toast.makeText(mContext, "network type: " + msg, Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"mode\"");
- }
- // reference signal receiving power
- if (response.has("rsrp")) {
- int rsrp = response.getInt("rsrp");
- Toast.makeText(mContext, "reference signal receiving power: " + String.valueOf(rsrp), Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"rsrp\"");
- }
- // rf signal strength parameter
- if (response.has("rssi")) {
- int rssi = response.getInt("rssi");
- Toast.makeText(mContext, "rf signal strength parameter: " + String.valueOf(rssi), Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"rssi\"");
- }
- // reference signal receive quality
- if (response.has("rsrq")) {
- int rsrq = response.getInt("rsrq");
- Toast.makeText(mContext, "reference signal receive quality: " + String.valueOf(rsrq), Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"rsrq\"");
- }
- // signal to interference plus noise ratio
- if (response.has("sinr")) {
- int sinr = response.getInt("sinr");
- Toast.makeText(mContext, "signal to interference plus noise ration: " + String.valueOf(sinr), Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"sinr\"");
- }
- // physical cell id
- if (response.has("pci")) {
- int pci = response.getInt("pci");
- Toast.makeText(mContext, "physical cell ID: " + String.valueOf(pci), Toast.LENGTH_SHORT).show();
- } else {
- Log.e(TAG, "response does not have \"pci\"");
- }
- }
- } catch (JSONException e) {
- Log.e(TAG, "JSON error: " + e.getMessage());
- }
- } else {
- Log.e(TAG, "Response JSONObject is null");
- }
- }
- private void handleError(VolleyError error, int type) {
- Log.e(TAG, "VolleyError with request type: " + String.valueOf(type) + " - " + error.getMessage());
- Toast.makeText(mContext, "VolleyError with request type: " + String.valueOf(type) + " - " + error.getMessage(), Toast.LENGTH_SHORT).show();
- }
- private void getCPEDeviceInformation() {
- String url = Constants.INTERFACE_PREFIX + "GetDeviceInfo";
- startJsonRequest(url, null, TYPE_GET_CPE_DEVICE_INFORMATION, 500);
- // TODO: verify this timeout, as it's missing from the API documentation
- }
- private void firmwareOtaUpdate() {
- // not yet implemented
- }
- private void reboot() {
- String url = Constants.INTERFACE_PREFIX + "reboot";
- startJsonRequest(url, null, TYPE_REBOOT, 500);
- }
- private void resetToFactorySettings() {
- String url = Constants.INTERFACE_PREFIX + "reset";
- startJsonRequest(url, null, TYPE_RESET_TO_FACTORY_SETTINGS, 500);
- }
- private void login(String username, String password) {
- String url = Constants.INTERFACE_PREFIX + "login";
- String requestParams = "username,password";
- String[] requestValues = {username, password};
- JSONObject obj = JsonUtils.createJson(requestParams, requestValues);
- startJsonRequest(url, obj, TYPE_LOGIN, 200);
- }
- private void logout() {
- String url = Constants.INTERFACE_PREFIX + "logout";
- startJsonRequest(url, null, TYPE_LOGOUT, 200);
- }
- private void modifyLoginPassword(String oldPassword, String newPassword, String confirmNewPassword) {
- String url = Constants.INTERFACE_PREFIX + "ModifyPassword";
- String requestParams = "o_passwd,n_passwd,c_passwd";
- String[] requestValues = {oldPassword, newPassword, confirmNewPassword};
- JSONObject obj = JsonUtils.createJson(requestParams, requestValues);
- startJsonRequest(url, obj, TYPE_MODIFY_LOGIN_PASSWORD, 500);
- }
- private void getNetworkInformation() {
- String url = Constants.INTERFACE_PREFIX + "GetWirelessNetworkInfo";
- startJsonRequest(url, null, TYPE_GET_NETWORK_INFORMATION, 1000);
- }
- private void getDataStatisticsInformation() {
- String url = Constants.INTERFACE_PREFIX + "GetStatisticsInfo";
- startJsonRequest(url, null, TYPE_GET_DATA_STATISTICS_INFORMATION, 200);
- }
- private void resetDataStatistics() {
- String url = Constants.INTERFACE_PREFIX + "ResetStatisticsInfo";
- startJsonRequest(url, null, TYPE_RESET_DATA_STATISTICS, 200);
- }
- private void getConnectedClientsInformation() {
- String url = Constants.INTERFACE_PREFIX + "GetClientsInfo";
- startJsonRequest(url, null, TYPE_GET_CONNECTED_CLIENTS_INFORMATION, 500);
- }
- private void getDialStatus() {
- String url = Constants.INTERFACE_PREFIX + "GetDialStatus";
- startJsonRequest(url, null, TYPE_GET_DIAL_STATUS, 200);
- }
- private void getMobileDataSwitchStatus() {
- String url = Constants.INTERFACE_PREFIX + "GetMobileDataStatus";
- startJsonRequest(url, null, TYPE_GET_MOBILE_DATA_SWITCH_STATUS, 200);
- }
- private void configMobileDataSwitch(int status) {
- if (status != MOBILE_DATA_SWITCH_STATUS_CLOSED && status != MOBILE_DATA_SWITCH_STATUS_OPEN) {
- throw new IllegalArgumentException("Status must 0 (Closed) or 1 (Open)");
- }
- String url = Constants.INTERFACE_PREFIX + "SetMobileDataStatus";
- String requestParams = "status";
- String[] requestValues = {String.valueOf(status)};
- JSONObject obj = JsonUtils.createJson(requestParams, requestValues);
- startJsonRequest(url, obj, TYPE_CONFIG_MOBILE_DATA_SWITCH, 200);
- }
- private void getRoamingSwitchStatus() {
- String url = Constants.INTERFACE_PREFIX + "GetMobileDataRoamingStatus";
- startJsonRequest(url, null, TYPE_GET_ROAMING_SWITCH_STATUS, 200);
- }
- private void configRoamingSwitch(int status) {
- if (status != ROAMING_SWITCH_STATUS_OPEN && status != ROAMING_SWITCH_STATUS_CLOSED) {
- throw new IllegalArgumentException("Status must be 0 (Closed) or 1 (Open)");
- }
- String url = Constants.INTERFACE_PREFIX + "SetMobileDataRoamingStatus";
- String requestParams = "status";
- String[] requestValues = {String.valueOf(status)};
- JSONObject obj = JsonUtils.createJson(requestParams, requestValues);
- startJsonRequest(url, obj, TYPE_CONFIG_ROAMING_SWITCH, 200);
- }
- private void getApnProfileSettings() {
- String url = Constants.INTERFACE_PREFIX + "GetProfile";
- startJsonRequest(url, null, TYPE_GET_APN_PROFILE_SETTINGS, 200);
- }
- private void addNewApnProfile(String profileName, String userName, String password, String apn, int authenticationType, int ipType) {
- // TODO: figure out valid authentication type params
- if (ipType != IP_TYPE_IPV4 && ipType != IP_TYPE_IPV6 && ipType != IP_TYPE_V4V6) {
- throw new IllegalArgumentException("ipType must be one of 4 (IPV4), 6 (IPV6) or 10 (V4V6)");
- }
- String url = Constants.INTERFACE_PREFIX + "AddProfile";
- String requestParams = "profilename,username,password,apn,authmode,iptype";
- String[] requestValues = {profileName, userName, password, apn, String.valueOf(authenticationType), String.valueOf(ipType)};
- JSONObject obj = JsonUtils.createJson(requestParams, requestValues);
- startJsonRequest(url, obj, TYPE_ADD_NEW_APN_PROFILE, 3000);
- }
- private void modifyProfileSettings(int profileIndex, String profileName, String userName, String password,
- String apn, int authenticationType, int ipType) {
- // TODO: verify profileIndex exists and figure out valid auth type params
- if (ipType != IP_TYPE_IPV4 && ipType != IP_TYPE_IPV6 && ipType != IP_TYPE_V4V6) {
- throw new IllegalArgumentException("ipType must be one of 4 (IPV4), 6 (IPV6) or 10 (V4V6)");
- }
- String url = Constants.INTERFACE_PREFIX + "SetProfile";
- String requestParams = "index,profilname,username,password,apn,authmode,iptype";
- String[] requestValues = {String.valueOf(profileIndex), profileName, userName, password, apn, String.valueOf(authenticationType), String.valueOf(ipType)};
- JSONObject obj = JsonUtils.createJson(requestParams, requestValues);
- startJsonRequest(url, obj, TYPE_MODIFY_PROFILE_SETTINGS, 3000);
- }
- private void deleteApnProfile(int profileIndex) {
- // TODO: verify profileIndex exists
- String url = Constants.INTERFACE_PREFIX + "DeleteProfile";
- String requestParams = "index";
- String[] requestValues = {String.valueOf(profileIndex)};
- JSONObject obj = JsonUtils.createJson(requestParams, requestValues);
- startJsonRequest(url, obj, TYPE_DELETE_APN_PROFILE, 3000);
- }
- private void getSimCardStatus() {
- String url = Constants.INTERFACE_PREFIX + "GetSimInfo";
- startJsonRequest(url, null, TYPE_GET_SIM_CARD_STATUS, 200);
- }
- private void getRfInformation() {
- String url = Constants.INTERFACE_PREFIX + "GetRFParameters";
- startJsonRequest(url, null, TYPE_GET_RF_INFORMATION, 200);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement