List of usage examples for android.content Context DEVICE_POLICY_SERVICE
String DEVICE_POLICY_SERVICE
To view the source code for android.content Context DEVICE_POLICY_SERVICE.
Click Source Link
From source file:com.android.settings.HWSettings.java
private void createFragments() { DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); this.mViewPager = ((ViewPager) findViewById(R.id.tab_pager)); this.mPagerAdapter = new SettingsPagerAdapter(); this.mViewPager.setAdapter(this.mPagerAdapter); SettingsPageChangeListener localSettingsPageChangeListener = new SettingsPageChangeListener(); this.mViewPager.setOnPageChangeListener(localSettingsPageChangeListener); this.mFragmentManager = getFragmentManager(); FragmentTransaction localFragmentTransaction = this.mFragmentManager.beginTransaction(); Fragment localFragment1 = this.mFragmentManager .findFragmentByTag("com.android.settings.HWAllSettingsFragment"); if (localFragment1 != null) localFragmentTransaction.remove(localFragment1); Fragment localFragment2 = this.mFragmentManager .findFragmentByTag("com.android.settings.HWGeneralSettingsFragment"); if (localFragment2 != null) localFragmentTransaction.remove(localFragment2); Log.d("dingjingliang", "createFragments: curTabIndex" + curTabIndex); this.mGeneralSettingsFragment = new HWGeneralSettingsFragment(mAuthenticatorHelper, dpm); localFragmentTransaction.add(R.id.tab_pager, this.mGeneralSettingsFragment, "com.android.settings.HWGeneralSettingsFragment"); localFragmentTransaction.hide(this.mGeneralSettingsFragment); this.mAllSettingsFragment = new HWAllSettingsFragment(mAuthenticatorHelper, dpm); localFragmentTransaction.add(R.id.tab_pager, this.mAllSettingsFragment, "com.android.settings.HWAllSettingsFragment"); localFragmentTransaction.hide(this.mAllSettingsFragment); localFragmentTransaction.commitAllowingStateLoss(); this.mFragmentManager.executePendingTransactions(); }
From source file:org.wso2.emm.agent.utils.CommonUtils.java
/** * Disable admin privileges./*from w w w.ja v a 2 s . c om*/ * @param context - Application context. */ public static void disableAdmin(Context context) { DevicePolicyManager devicePolicyManager; ComponentName demoDeviceAdmin; devicePolicyManager = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE); demoDeviceAdmin = new ComponentName(context, AgentDeviceAdminReceiver.class); devicePolicyManager.removeActiveAdmin(demoDeviceAdmin); }
From source file:com.silentcircle.silenttext.util.DeviceUtils.java
@TargetApi(Build.VERSION_CODES.HONEYCOMB) private static boolean isEncryptedHoneycomb(Context context) { DevicePolicyManager policy = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE); return DevicePolicyManager.ENCRYPTION_STATUS_ACTIVE == policy.getStorageEncryptionStatus(); }
From source file:com.silentcircle.silenttext.util.DeviceUtils.java
@TargetApi(Build.VERSION_CODES.HONEYCOMB) private static boolean isFullDiskEncryptionSupportedHoneycomb(Context context) { DevicePolicyManager policy = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE); int status = policy.getStorageEncryptionStatus(); return DevicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED != status; }
From source file:com.tomer.alwayson.SettingsFragment.java
@Override public boolean onPreferenceChange(final Preference preference, Object o) { if (preference.getKey().equals("watchface_clock")) { int value = Integer.parseInt((String) o); if (value > 2) { if (Globals.ownedItems != null) { if (Globals.ownedItems.size() > 0) { return true; } else { PreferencesActivity.quicklyPromptToSupport(getActivity(), Globals.mService, rootView); return false; }//w w w . j a va 2s.com } else { PreferencesActivity.quicklyPromptToSupport(getActivity(), Globals.mService, rootView); } } else { return true; } } prefs.apply(); Utils.logDebug("Preference change", preference.getKey() + " Value:" + o.toString()); if (preference.getKey().equals("notifications_alerts")) { if ((boolean) o) return checkNotificationsPermission(context, true); return true; } if (preference.getKey().equals("persistent_notification") && !(boolean) o) { Snackbar.make(rootView, R.string.warning_1_harm_performance, 10000) .setAction(R.string.action_revert, new View.OnClickListener() { @Override public void onClick(View v) { ((CheckBoxPreference) preference).setChecked(true); restartService(); } }).show(); restartService(); } if (preference.getKey().equals("enabled")) { restartService(); } if (preference.getKey().equals("proximity_to_lock")) { if (Shell.SU.available() || Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) return true; else { DevicePolicyManager mDPM = (DevicePolicyManager) context .getSystemService(Context.DEVICE_POLICY_SERVICE); final ComponentName mAdminName = new ComponentName(context, DAReceiver.class); if ((mDPM != null && mDPM.isAdminActive(mAdminName))) { return true; } new AlertDialog.Builder(getActivity()) .setTitle(getString(android.R.string.dialog_alert_title) + "!") .setMessage(getString(R.string.warning_7_disable_fingerprint)) .setPositiveButton(getString(android.R.string.yes), (dialogInterface, i) -> { Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mAdminName); intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, getString(R.string.settings_proximity)); startActivityForResult(intent, DEVICE_ADMIN_REQUEST_CODE); }).setNegativeButton(getString(android.R.string.no), (dialogInterface, i) -> { dialogInterface.dismiss(); }).show(); return false; } } if (preference.getKey().equals("startafterlock") && !(boolean) o) { Snackbar.make(rootView, R.string.warning_4_device_not_secured, 10000) .setAction(R.string.action_revert, new View.OnClickListener() { @Override public void onClick(View v) { ((CheckBoxPreference) preference).setChecked(true); } }).show(); } if (preference.getKey().equals("doze_mode") && (boolean) o) { if (Shell.SU.available()) { if (!DozeManager.isDumpPermissionGranted(context)) DozeManager.grantPermission(context, "android.permission.DUMP"); if (!DozeManager.isDevicePowerPermissionGranted(context)) DozeManager.grantPermission(context, "android.permission.DEVICE_POWER"); return true; } Snackbar.make(rootView, R.string.warning_11_no_root, Snackbar.LENGTH_LONG).show(); return false; } if (preference.getKey().equals("camera_shortcut") || preference.getKey().equals("google_now_shortcut")) { try { if (!hasUsageAccess()) { Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS); PackageManager packageManager = getActivity().getPackageManager(); if (intent.resolveActivity(packageManager) != null) { startActivity(intent); } else { Toast.makeText(context, "Please grant usage access permission manually for the app, your device can't do it automatically.", Toast.LENGTH_LONG).show(); } return false; } } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } } if (preference.getKey().equals("battery_saver")) if ((boolean) o) { ((TwoStatePreference) findPreference("doze_mode")).setChecked(true); setUpBatterySaverPermission(); } return true; }
From source file:com.wso2.mobile.mdm.services.Operation.java
@SuppressWarnings("static-access") @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) public void doTask(String code_in, String data_in, int req_mode) { String code_input = code_in;//from w w w. jav a 2 s . com String data_input = data_in; String notification = ""; String ssid = ""; String password = ""; devicePolicyManager = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE); appList = new ApplicationManager(context); deviceInfo = new DeviceInfo(context); gps = new GPSTracker(context); smsManager = SmsManager.getDefault(); conversations = new TrackCallSMS(context); deviceState = new PhoneState(context); if (code_input.equals(CommonUtilities.OPERATION_DEVICE_INFO)) { PhoneState phoneState = new PhoneState(context); JSONObject obj = new JSONObject(); JSONObject battery_obj = new JSONObject(); JSONObject inmemory_obj = new JSONObject(); JSONObject exmemory_obj = new JSONObject(); JSONObject location_obj = new JSONObject(); double latitude = 0; double longitude = 0; try { latitude = gps.getLatitude(); longitude = gps.getLongitude(); int batteryLevel = (int) Math.floor(phoneState.getBatteryLevel()); battery_obj.put("level", batteryLevel); inmemory_obj.put("total", deviceInfo.getTotalInternalMemorySize()); inmemory_obj.put("available", deviceInfo.getAvailableInternalMemorySize()); exmemory_obj.put("total", deviceInfo.getTotalExternalMemorySize()); exmemory_obj.put("available", deviceInfo.getAvailableExternalMemorySize()); location_obj.put("latitude", latitude); location_obj.put("longitude", longitude); obj.put("battery", battery_obj); obj.put("internal_memory", inmemory_obj); obj.put("external_memory", exmemory_obj); obj.put("location_obj", location_obj); obj.put("operator", deviceInfo.getNetworkOperatorName()); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); params.put("data", obj.toString()); Map<String, String> as = new HashMap<String, String>(); as.put("all", params.toString()); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Battery Level : " + phoneState.getBatteryLevel() + ", Total Memory : " + deviceInfo.formatSizeGB(deviceInfo.getTotalInternalMemorySize() + deviceInfo.getTotalExternalMemorySize()) + ", Available Memory : " + deviceInfo.formatSizeGB(deviceInfo.getAvailableInternalMemorySize() + deviceInfo.getAvailableExternalMemorySize()), null, null); } } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_DEVICE_LOCATION)) { LocationServices ls = new LocationServices(context); Log.v("Latitude", ls.getLatitude()); double latitude = 0; double longitude = 0; JSONObject obj = new JSONObject(); try { latitude = gps.getLatitude(); longitude = gps.getLongitude(); obj.put("latitude", latitude); obj.put("longitude", longitude); Map<String, String> params = new HashMap<String, String>(); params.put("code", CommonUtilities.OPERATION_DEVICE_LOCATION); params.put("msgID", token); params.put("status", "200"); params.put("data", obj.toString()); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Longitude : " + longitude + ",Latitude : " + latitude, null, null); } } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_GET_APPLICATION_LIST)) { ArrayList<PInfo> apps = appList.getInstalledApps(false); /* * false = * no system * packages */ JSONArray jsonArray = new JSONArray(); int max = apps.size(); String apz = ""; Log.e("APP TOTAL : ", "" + max); for (int i = 0; i < max; i++) { JSONObject jsonObj = new JSONObject(); try { jsonObj.put("name", apps.get(i).appname); jsonObj.put("package", apps.get(i).pname); jsonObj.put("icon", apps.get(i).icon); apz += apps.get(i).appname + " ,"; } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } jsonArray.put(jsonObj); } JSONObject appsObj = new JSONObject(); try { appsObj.put("apps", jsonArray); Map<String, String> params = new HashMap<String, String>(); params.put("code", CommonUtilities.OPERATION_GET_APPLICATION_LIST); params.put("msgID", token); params.put("status", "200"); params.put("data", Uri.encode(jsonArray.toString())); Log.e("PASSING MSG ID : ", token); Log.e("PASSING CODE : ", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, apz, null, null); } } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_LOCK_DEVICE)) { Log.d(TAG, "Locking device now"); try { Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Device Locked Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, params.toString()); } devicePolicyManager.lockNow(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_WIPE_DATA)) { Log.d(TAG, "RESETing device now - all user data will be ERASED to factory settings"); String pin = null; SharedPreferences mainPref = context.getSharedPreferences("com.mdm", Context.MODE_PRIVATE); String pinSaved = mainPref.getString("pin", ""); try { JSONObject jobj = new JSONObject(data_input); pin = (String) jobj.get("pin"); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); if (pin.trim().equals(pinSaved.trim())) { params.put("status", "200"); } else { params.put("status", "400"); } if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { if (pin.trim().equals(pinSaved.trim())) { smsManager.sendTextMessage(recepient, null, "Device Wiped Successfully", null, null); } else { smsManager.sendTextMessage(recepient, null, "Wrong PIN", null, null); } } if (pin.trim().equals(pinSaved.trim())) { Toast.makeText(context, "Device is being wiped", Toast.LENGTH_LONG).show(); startUnRegistration(context); try { Thread.sleep(4000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } devicePolicyManager.wipeData(ACTIVATION_REQUEST); } else { Toast.makeText(context, "Device wipe failed due to wrong PIN", Toast.LENGTH_LONG).show(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_CLEAR_PASSWORD)) { ComponentName demoDeviceAdmin = new ComponentName(context, WSO2DeviceAdminReceiver.class); try { Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Lock code cleared Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, params.toString()); } devicePolicyManager.setPasswordQuality(demoDeviceAdmin, DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED); devicePolicyManager.setPasswordMinimumLength(demoDeviceAdmin, 0); devicePolicyManager.resetPassword("", DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY); devicePolicyManager.lockNow(); devicePolicyManager.setPasswordQuality(demoDeviceAdmin, DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_NOTIFICATION)) { JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); if (jobj.get("notification").toString() != null || jobj.get("notification").toString().equals("")) { notification = jobj.get("notification").toString(); } else if (jobj.get("Notification").toString() != null || jobj.get("Notification").toString().equals("")) { notification = jobj.get("Notification").toString(); } else { notification = ""; } Log.v("Notification", notification); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Notification Receieved Successfully", null, null); } Intent intent = new Intent(context, AlertActivity.class); intent.putExtra("message", notification); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_WIFI)) { boolean wifistatus = false; JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); if (!jobj.isNull("ssid")) { ssid = (String) jobj.get("ssid"); } if (!jobj.isNull("password")) { password = (String) jobj.get("password"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } Map<String, String> inparams = new HashMap<String, String>(); inparams.put("code", code_input); inparams.put("msgID", token); WiFiConfig config = new WiFiConfig(context); try { wifistatus = config.saveWEPConfig(ssid, password); if (wifistatus) { inparams.put("status", "200"); } else { inparams.put("status", "400"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "WiFi Configured Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, inparams.toString()); } } } else if (code_input.equals(CommonUtilities.OPERATION_DISABLE_CAMERA)) { boolean camFunc = false; JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); if (!jobj.isNull("function") && jobj.get("function").toString().equalsIgnoreCase("enable")) { camFunc = false; } else if (!jobj.isNull("function") && jobj.get("function").toString().equalsIgnoreCase("disable")) { camFunc = true; } else if (!jobj.isNull("function")) { camFunc = Boolean.parseBoolean(jobj.get("function").toString()); } ComponentName cameraAdmin = new ComponentName(context, WSO2DeviceAdminReceiver.class); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); String cammode = "Disabled"; if (camFunc) { cammode = "Disabled"; } else { cammode = "Enabled"; } if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Camera " + cammode + " Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, params.toString()); } if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { devicePolicyManager.setCameraDisabled(cameraAdmin, camFunc); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_INSTALL_APPLICATION) || code_input.equals(CommonUtilities.OPERATION_INSTALL_APPLICATION_BUNDLE)) { try { if (code_input.equals(CommonUtilities.OPERATION_INSTALL_APPLICATION)) { JSONObject jobj = new JSONObject(data_input); installApplication(jobj, code_input); } else if (code_input.equals(CommonUtilities.OPERATION_INSTALL_APPLICATION_BUNDLE)) { JSONArray jArray = null; jArray = new JSONArray(data_input); for (int i = 0; i < jArray.length(); i++) { JSONObject appObj = (JSONObject) jArray.getJSONObject(i); installApplication(appObj, code_input); } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_UNINSTALL_APPLICATION)) { String packageName = ""; JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); packageName = (String) jobj.get("identity"); Log.v("Package Name : ", packageName); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Application uninstalled Successfully", null, null); } appList.unInstallApplication(packageName); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_ENCRYPT_STORAGE)) { boolean encryptFunc = true; String pass = ""; JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); if (!jobj.isNull("function") && jobj.get("function").toString().equalsIgnoreCase("encrypt")) { encryptFunc = true; } else if (!jobj.isNull("function") && jobj.get("function").toString().equalsIgnoreCase("decrypt")) { encryptFunc = false; } else if (!jobj.isNull("function")) { encryptFunc = Boolean.parseBoolean(jobj.get("function").toString()); } ComponentName admin = new ComponentName(context, WSO2DeviceAdminReceiver.class); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); if (encryptFunc && devicePolicyManager .getStorageEncryptionStatus() != devicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED) { if (devicePolicyManager .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_INACTIVE) { if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { devicePolicyManager.setStorageEncryption(admin, encryptFunc); Intent intent = new Intent(DevicePolicyManager.ACTION_START_ENCRYPTION); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } } } else if (!encryptFunc && devicePolicyManager .getStorageEncryptionStatus() != devicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED) { if (devicePolicyManager .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_ACTIVE || devicePolicyManager .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_ACTIVATING) { if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { devicePolicyManager.setStorageEncryption(admin, encryptFunc); } } } if (devicePolicyManager .getStorageEncryptionStatus() != devicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED) { params.put("status", "200"); } else { params.put("status", "400"); } if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Storage Encrypted Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, params.toString()); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_MUTE)) { Log.d(TAG, "Muting Device"); try { Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Device Muted Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, params.toString()); } muteDevice(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_TRACK_CALLS)) { try { Map<String, String> params = new HashMap<String, String>(); params.put("code", CommonUtilities.OPERATION_TRACK_CALLS); params.put("msgID", token); params.put("status", "200"); params.put("data", conversations.getCallDetails().toString()); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, conversations.getCallDetails().toString(), null, null); } } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_TRACK_SMS)) { int MESSAGE_TYPE_INBOX = 1; int MESSAGE_TYPE_SENT = 2; JSONObject smsObj = new JSONObject(); try { smsObj.put("inbox", conversations.getSMS(MESSAGE_TYPE_INBOX)); smsObj.put("sent", conversations.getSMS(MESSAGE_TYPE_SENT)); Map<String, String> params = new HashMap<String, String>(); params.put("code", CommonUtilities.OPERATION_TRACK_SMS); params.put("msgID", token); params.put("status", "200"); params.put("data", smsObj.toString()); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, smsObj.toString(), null, null); } } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_DATA_USAGE)) { JSONObject dataObj = new JSONObject(); try { Map<String, String> params = new HashMap<String, String>(); params.put("code", CommonUtilities.OPERATION_DATA_USAGE); params.put("msgID", token); params.put("status", "200"); params.put("data", deviceState.takeDataUsageSnapShot().toString()); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, dataObj.toString(), null, null); } } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_STATUS)) { boolean encryptStatus = false; boolean passCodeStatus = false; try { if (devicePolicyManager .getStorageEncryptionStatus() != devicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED) { if (devicePolicyManager .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_ACTIVE || devicePolicyManager .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_ACTIVATING) { encryptStatus = true; } else { encryptStatus = false; } } if (devicePolicyManager.isActivePasswordSufficient()) { passCodeStatus = true; } else { passCodeStatus = false; } } catch (Exception ex) { ex.printStackTrace(); passCodeStatus = false; } JSONObject dataObj = new JSONObject(); try { dataObj.put("encryption", encryptStatus); dataObj.put("passcode", passCodeStatus); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); params.put("data", dataObj.toString()); if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, dataObj.toString(), null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, params.toString()); } } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_WEBCLIP)) { String appUrl = ""; String title = ""; JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); Log.v("WEBCLIP DATA : ", data.toString()); appUrl = (String) jobj.get("identity"); title = (String) jobj.get("title"); Log.v("Web App URL : ", appUrl); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "WebClip created Successfully", null, null); } appList.createWebAppBookmark(appUrl, title); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_PASSWORD_POLICY)) { ComponentName demoDeviceAdmin = new ComponentName(context, WSO2DeviceAdminReceiver.class); int attempts, length, history, specialChars; String alphanumeric, complex; boolean b_alphanumeric, b_complex; long timout; Map<String, String> inparams = new HashMap<String, String>(); JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); if (!jobj.isNull("maxFailedAttempts") && jobj.get("maxFailedAttempts") != null) { attempts = Integer.parseInt((String) jobj.get("maxFailedAttempts")); devicePolicyManager.setMaximumFailedPasswordsForWipe(demoDeviceAdmin, attempts); } if (!jobj.isNull("minLength") && jobj.get("minLength") != null) { length = Integer.parseInt((String) jobj.get("minLength")); devicePolicyManager.setPasswordMinimumLength(demoDeviceAdmin, length); } if (!jobj.isNull("pinHistory") && jobj.get("pinHistory") != null) { history = Integer.parseInt((String) jobj.get("pinHistory")); devicePolicyManager.setPasswordHistoryLength(demoDeviceAdmin, history); } if (!jobj.isNull("minComplexChars") && jobj.get("minComplexChars") != null) { specialChars = Integer.parseInt((String) jobj.get("minComplexChars")); devicePolicyManager.setPasswordMinimumSymbols(demoDeviceAdmin, specialChars); } if (!jobj.isNull("requireAlphanumeric") && jobj.get("requireAlphanumeric") != null) { if (jobj.get("requireAlphanumeric") instanceof String) { alphanumeric = (String) jobj.get("requireAlphanumeric"); if (alphanumeric.equals("true")) { devicePolicyManager.setPasswordQuality(demoDeviceAdmin, DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC); } } else if (jobj.get("requireAlphanumeric") instanceof Boolean) { b_alphanumeric = jobj.getBoolean("requireAlphanumeric"); if (b_alphanumeric) { devicePolicyManager.setPasswordQuality(demoDeviceAdmin, DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC); } } } if (!jobj.isNull("allowSimple") && jobj.get("allowSimple") != null) { if (jobj.get("allowSimple") instanceof String) { complex = (String) jobj.get("allowSimple"); if (!complex.equals("true")) { devicePolicyManager.setPasswordQuality(demoDeviceAdmin, DevicePolicyManager.PASSWORD_QUALITY_COMPLEX); } } else if (jobj.get("allowSimple") instanceof Boolean) { b_complex = jobj.getBoolean("allowSimple"); if (!b_complex) { devicePolicyManager.setPasswordQuality(demoDeviceAdmin, DevicePolicyManager.PASSWORD_QUALITY_COMPLEX); } } } if (!jobj.isNull("maxPINAgeInDays") && jobj.get("maxPINAgeInDays") != null) { int daysOfExp = Integer.parseInt((String) jobj.get("maxPINAgeInDays")); timout = (long) (daysOfExp * 24 * 60 * 60 * 1000); devicePolicyManager.setPasswordExpirationTimeout(demoDeviceAdmin, timout); } SharedPreferences mainPref = context.getSharedPreferences("com.mdm", Context.MODE_PRIVATE); String policy = mainPref.getString("policy", ""); inparams.put("code", code_input); inparams.put("msgID", token); inparams.put("status", "200"); } catch (Exception e) { // TODO Auto-generated catch block params.put("status", "400"); e.printStackTrace(); } finally { try { if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Password Policies Successfully Set", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, inparams.toString()); } } catch (Exception ex) { ex.printStackTrace(); } } } else if (code_input.equals(CommonUtilities.OPERATION_EMAIL_CONFIGURATION)) { String emailname = "", emailtype = "", ic_username = "", ic_password = "", ic_hostname = ""; long timout; Map<String, String> inparams = new HashMap<String, String>(); JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); if (!jobj.isNull("type") && jobj.get("type") != null) { emailtype = (String) jobj.get("type"); } if (!jobj.isNull("displayname") && jobj.get("displayname") != null) { emailname = (String) jobj.get("displayname"); } if (!jobj.isNull("username") && jobj.get("username") != null) { ic_username = (String) jobj.get("username"); } if (!jobj.isNull("password") && jobj.get("password") != null) { ic_password = (String) jobj.get("password"); } if (emailtype.trim().equals("GMAIL")) { ic_hostname = "imap.googlemail.com"; } else if (emailtype.equals("YAHOO")) { ic_hostname = ""; } else if (emailtype.equals("HOTMAIL")) { ic_hostname = ""; } inparams.put("code", code_input); inparams.put("msgID", token); inparams.put("status", "200"); } catch (Exception e) { // TODO Auto-generated catch block params.put("status", "400"); e.printStackTrace(); } finally { try { if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Email Configured Successfully Set", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, inparams.toString()); } } catch (Exception ex) { ex.printStackTrace(); } } } else if (code_input.equals(CommonUtilities.OPERATION_INSTALL_GOOGLE_APP)) { String packageName = ""; JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); packageName = (String) jobj.get("package"); Log.v("Package Name : ", packageName); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Application installed Successfully", null, null); } Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setData(Uri.parse("market://details?id=" + packageName)); context.startActivity(intent); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_CHANGE_LOCK_CODE)) { ComponentName demoDeviceAdmin = new ComponentName(context, WSO2DeviceAdminReceiver.class); devicePolicyManager.setPasswordMinimumLength(demoDeviceAdmin, 3); String pass = ""; Map<String, String> inparams = new HashMap<String, String>(); JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); if (!jobj.isNull("password")) { pass = (String) jobj.get("password"); } inparams.put("code", code_input); inparams.put("msgID", token); inparams.put("status", "200"); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Lock code changed Successfully", null, null); } if (!pass.equals("")) { devicePolicyManager.resetPassword(pass, DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY); devicePolicyManager.lockNow(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Lock code changed Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, inparams.toString()); } } catch (Exception ex) { ex.printStackTrace(); } } } else if (code_input.equals(CommonUtilities.OPERATION_POLICY_BUNDLE)) { Map<String, String> params = new HashMap<String, String>(); try { params.put("code", code); params.put("msgID", policy_token); params.put("status", "200"); params.put("data", bundle_params.toString()); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Bundle Executed Successfully", null, null); } } catch (Exception ex) { ex.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_POLICY_MONITOR)) { JSONArray sendjArray; try { JSONObject jobj = new JSONObject(this.data); sendjArray = jobj.getJSONArray("policies"); int type = Integer.parseInt((String) jobj.get("type").toString().trim()); if (type != 1 && type != 2 && type != 3) { type = 1; } Log.e("PASSING MSG ID : ", policy_token); Log.e("PASSING CODE : ", code_input); Log.e("PASSING TYPE : ", String.valueOf(type)); PolicyTester tester = new PolicyTester(context, sendjArray, type, policy_token); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_POLICY_REVOKE)) { try { Map<String, String> inparams = new HashMap<String, String>(); inparams.put("code", code_input); inparams.put("msgID", token); inparams.put("status", "200"); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Lock code changed Successfully", null, null); } revokePolicy(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_BLACKLIST_APPS)) { ArrayList<PInfo> apps = appList.getInstalledApps(false); /* * false = * no system * packages */ JSONArray jsonArray = new JSONArray(); int max = apps.size(); if (max > 10) { //max = 10; } String apz = ""; try { JSONObject appsObj = new JSONObject(data_input); JSONObject appObj = (JSONObject) appsObj.get("data"); String identity = (String) appObj.get("identity"); for (int j = 0; j < max; j++) { JSONObject jsonObj = new JSONObject(); try { jsonObj.put("name", apps.get(j).appname); jsonObj.put("package", apps.get(j).pname); if (identity.trim().equals(apps.get(j).pname)) { jsonObj.put("notviolated", false); jsonObj.put("package", apps.get(j).pname); } else { jsonObj.put("notviolated", true); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } jsonArray.put(jsonObj); } } catch (Exception ex) { ex.printStackTrace(); } JSONObject appsObj = new JSONObject(); try { appsObj.put("apps", jsonArray); Map<String, String> params = new HashMap<String, String>(); params.put("code", CommonUtilities.OPERATION_GET_APPLICATION_LIST); params.put("msgID", token); params.put("status", "200"); params.put("data", jsonArray.toString()); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, apz, null, null); } SharedPreferences mainPref = context.getSharedPreferences("com.mdm", Context.MODE_PRIVATE); String policy = mainPref.getString("policy", ""); if (policy != null && policy != "") { if (apz != null || !apz.trim().equals("")) { } } } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }
From source file:com.example.android.apprestrictionenforcer.AppRestrictionEnforcerFragment.java
/** * Saves all the restrictions./*from w w w. j a v a2 s.c o m*/ * * @param activity The activity. */ private void saveRestrictions(Activity activity) { DevicePolicyManager devicePolicyManager = (DevicePolicyManager) activity .getSystemService(Context.DEVICE_POLICY_SERVICE); devicePolicyManager.setApplicationRestrictions(EnforcerDeviceAdminReceiver.getComponentName(activity), Constants.PACKAGE_NAME_APP_RESTRICTION_SCHEMA, mCurrentRestrictions); }
From source file:com.afwsamples.testdpc.policy.PolicyManagementFragment.java
@Override public void onCreate(Bundle savedInstanceState) { mAdminComponentName = DeviceAdminReceiver.getComponentName(getActivity()); mDevicePolicyManager = (DevicePolicyManager) getActivity().getSystemService(Context.DEVICE_POLICY_SERVICE); mUserManager = (UserManager) getActivity().getSystemService(Context.USER_SERVICE); mTelephonyManager = (TelephonyManager) getActivity().getSystemService(Context.TELEPHONY_SERVICE); mPackageManager = getActivity().getPackageManager(); mPackageName = getActivity().getPackageName(); mImageUri = getStorageUri("image.jpg"); mVideoUri = getStorageUri("video.mp4"); super.onCreate(savedInstanceState); }
From source file:org.wso2.cdm.agent.services.Operation.java
@SuppressWarnings("static-access") @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) public JSONArray doTask(String code_in, String data_in, int req_mode) { Log.e("doTask", "code:" + code_in + "\n" + data_in); String data_input = data_in;/*from w ww.ja va2 s .c o m*/ String code_input = code_in; String notification = ""; String ssid = ""; String password = ""; devicePolicyManager = (DevicePolicyManager) context.getApplicationContext() .getSystemService(Context.DEVICE_POLICY_SERVICE); appList = new ApplicationManager(context.getApplicationContext()); deviceInfo = new DeviceInfo(context); gps = new GPSTracker(context); smsManager = SmsManager.getDefault(); conversations = new TrackCallSMS(context); deviceState = new PhoneState(context); JSONArray resultArr = new JSONArray(); JSONObject result = new JSONObject(); if (code_input.equals(CommonUtilities.OPERATION_DEVICE_INFO)) { PhoneState phoneState = new PhoneState(context); JSONObject obj = new JSONObject(); JSONObject battery_obj = new JSONObject(); JSONObject inmemory_obj = new JSONObject(); JSONObject exmemory_obj = new JSONObject(); JSONObject location_obj = new JSONObject(); double latitude = 0; double longitude = 0; try { latitude = gps.getLatitude(); longitude = gps.getLongitude(); int batteryLevel = (int) Math.floor(phoneState.getBatteryLevel()); // int batteryLevel = 40; battery_obj.put("level", batteryLevel); inmemory_obj.put("total", deviceInfo.getTotalInternalMemorySize()); inmemory_obj.put("available", deviceInfo.getAvailableInternalMemorySize()); exmemory_obj.put("total", deviceInfo.getTotalExternalMemorySize()); exmemory_obj.put("available", deviceInfo.getAvailableExternalMemorySize()); location_obj.put("latitude", latitude); location_obj.put("longitude", longitude); obj.put("battery", battery_obj); obj.put("internal_memory", inmemory_obj); obj.put("external_memory", exmemory_obj); if (latitude != 0 && longitude != 0) { obj.put("location_obj", location_obj); } obj.put("operator", deviceInfo.getNetworkOperatorName()); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); params.put("data", obj.toString()); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); result.put("data", obj); Map<String, String> as = new HashMap<String, String>(); as.put("all", params.toString()); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { // ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Battery Level : " + phoneState.getBatteryLevel() + ", Total Memory : " + deviceInfo.formatSizeGB(deviceInfo.getTotalInternalMemorySize() + deviceInfo.getTotalExternalMemorySize()) + ", Available Memory : " + deviceInfo.formatSizeGB(deviceInfo.getAvailableInternalMemorySize() + deviceInfo.getAvailableExternalMemorySize()), null, null); } } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_DEVICE_LOCATION)) { LocationServices ls = new LocationServices(context); Log.v("Latitude", ls.getLatitude()); double latitude = 0; double longitude = 0; JSONObject obj = new JSONObject(); try { latitude = gps.getLatitude(); longitude = gps.getLongitude(); obj.put("latitude", latitude); obj.put("longitude", longitude); Map<String, String> params = new HashMap<String, String>(); params.put("code", CommonUtilities.OPERATION_DEVICE_LOCATION); params.put("msgID", token); params.put("status", "200"); params.put("data", obj.toString()); //for local notification\ resultArr.put(result); result.put("status", "true"); result.put("code", code_input); result.put("data", obj); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Longitude : " + longitude + ",Latitude : " + latitude, null, null); } } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_GET_APPLICATION_LIST)) { ArrayList<PInfo> apps = appList.getInstalledApps(false); /* * false = * no system * packages */ JSONArray jsonArray = new JSONArray(); int max = apps.size(); String apz = ""; Log.e("APP TOTAL : ", "" + max); for (int i = 0; i < max; i++) { JSONObject jsonObj = new JSONObject(); try { jsonObj.put("name", Uri.encode(apps.get(i).appname)); jsonObj.put("package", apps.get(i).pname); jsonObj.put("icon", apps.get(i).icon); apz += apps.get(i).appname + " ,"; } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } jsonArray.put(jsonObj); } JSONObject appsObj = new JSONObject(); try { //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); result.put("data", jsonArray); appsObj.put("apps", jsonArray); Map<String, String> params = new HashMap<String, String>(); params.put("code", CommonUtilities.OPERATION_GET_APPLICATION_LIST); params.put("msgID", token); params.put("status", "200"); //params.put("data", Uri.encode(jsonArray.toString())); Log.e("PASSING MSG ID : ", token); Log.e("PASSING CODE : ", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, apz, null, null); } } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_LOCK_DEVICE)) { Log.d(TAG, "Locking device now"); try { Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Device Locked Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, params.toString()); } devicePolicyManager.lockNow(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_WIPE_DATA)) { Log.d(TAG, "RESETing device now - all user data will be ERASED to factory settings"); String pin = null; SharedPreferences mainPref = context.getSharedPreferences("com.mdm", Context.MODE_PRIVATE); String pinSaved = mainPref.getString("pin", ""); try { JSONObject jobj = new JSONObject(data_input); pin = (String) jobj.get("pin"); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); //for local notification resultArr.put(result); if (pin.trim().equals(pinSaved.trim())) { params.put("status", "200"); result.put("status", "true"); } else { params.put("status", "400"); result.put("status", "false"); } result.put("code", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { if (pin.trim().equals(pinSaved.trim())) { smsManager.sendTextMessage(recepient, null, "Device Wiped Successfully", null, null); } else { smsManager.sendTextMessage(recepient, null, "Wrong PIN", null, null); } } if (pin.trim().equals(pinSaved.trim())) { Toast.makeText(context, "Device is being wiped", Toast.LENGTH_LONG).show(); try { Thread.sleep(4000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } devicePolicyManager.wipeData(ACTIVATION_REQUEST); } else { Toast.makeText(context, "Device wipe failed due to wrong PIN", Toast.LENGTH_LONG).show(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_CLEAR_PASSWORD)) { ComponentName demoDeviceAdmin = new ComponentName(context, WSO2DeviceAdminReceiver.class); try { Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Lock code cleared Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, params.toString()); } devicePolicyManager.setPasswordQuality(demoDeviceAdmin, DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED); devicePolicyManager.setPasswordMinimumLength(demoDeviceAdmin, 0); devicePolicyManager.resetPassword("", DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY); devicePolicyManager.lockNow(); devicePolicyManager.setPasswordQuality(demoDeviceAdmin, DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_NOTIFICATION)) { JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); if (jobj.get("notification").toString() != null || jobj.get("notification").toString().equals("")) { notification = jobj.get("notification").toString(); } else if (jobj.get("Notification").toString() != null || jobj.get("Notification").toString().equals("")) { notification = jobj.get("Notification").toString(); } else { notification = ""; } Log.v("Notification", notification); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Notification Receieved Successfully", null, null); } Intent intent = new Intent(context, AlertActivity.class); intent.putExtra("message", notification); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_WIFI)) { boolean wifistatus = false; JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); if (!jobj.isNull("ssid")) { ssid = (String) jobj.get("ssid"); } if (!jobj.isNull("password")) { password = (String) jobj.get("password"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } Map<String, String> inparams = new HashMap<String, String>(); inparams.put("code", code_input); inparams.put("msgID", token); WiFiConfig config = new WiFiConfig(context); try { //for local notification resultArr.put(result); result.put("code", code_input); wifistatus = config.saveWEPConfig(ssid, password); if (wifistatus) { inparams.put("status", "200"); result.put("status", "true"); } else { inparams.put("status", "400"); result.put("status", "false"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "WiFi Configured Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, inparams.toString()); } } } else if (code_input.equals(CommonUtilities.OPERATION_DISABLE_CAMERA)) { boolean camFunc = false; JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); if (!jobj.isNull("function") && jobj.get("function").toString().equalsIgnoreCase("enable")) { camFunc = false; } else if (!jobj.isNull("function") && jobj.get("function").toString().equalsIgnoreCase("disable")) { camFunc = true; } else if (!jobj.isNull("function")) { camFunc = Boolean.parseBoolean(jobj.get("function").toString()); } ComponentName cameraAdmin = new ComponentName(context, WSO2DeviceAdminReceiver.class); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); String cammode = "Disabled"; if (camFunc) { cammode = "Disabled"; } else { cammode = "Enabled"; } if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Camera " + cammode + " Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, params.toString()); } if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { devicePolicyManager.setCameraDisabled(cameraAdmin, camFunc); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_INSTALL_APPLICATION) || code_input.equals(CommonUtilities.OPERATION_INSTALL_APPLICATION_BUNDLE)) { try { //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (code_input.equals(CommonUtilities.OPERATION_INSTALL_APPLICATION)) { JSONObject jobj = new JSONObject(data_input); installApplication(jobj, code_input); } else if (code_input.equals(CommonUtilities.OPERATION_INSTALL_APPLICATION_BUNDLE)) { JSONArray jArray = null; jArray = new JSONArray(data_input); for (int i = 0; i < jArray.length(); i++) { JSONObject appObj = (JSONObject) jArray.getJSONObject(i); installApplication(appObj, code_input); } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_UNINSTALL_APPLICATION)) { String packageName = ""; JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); packageName = (String) jobj.get("identity"); Log.v("Package Name : ", packageName); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Application uninstalled Successfully", null, null); } appList.unInstallApplication(packageName); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_ENCRYPT_STORAGE)) { boolean encryptFunc = true; String pass = ""; JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); if (!jobj.isNull("function") && jobj.get("function").toString().equalsIgnoreCase("encrypt")) { encryptFunc = true; } else if (!jobj.isNull("function") && jobj.get("function").toString().equalsIgnoreCase("decrypt")) { encryptFunc = false; } else if (!jobj.isNull("function")) { encryptFunc = Boolean.parseBoolean(jobj.get("function").toString()); } ComponentName admin = new ComponentName(context, WSO2DeviceAdminReceiver.class); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); if (encryptFunc && devicePolicyManager .getStorageEncryptionStatus() != devicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED) { if (devicePolicyManager .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_INACTIVE) { if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { devicePolicyManager.setStorageEncryption(admin, encryptFunc); Intent intent = new Intent(DevicePolicyManager.ACTION_START_ENCRYPTION); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } } } else if (!encryptFunc && devicePolicyManager .getStorageEncryptionStatus() != devicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED) { if (devicePolicyManager .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_ACTIVE || devicePolicyManager .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_ACTIVATING) { if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { devicePolicyManager.setStorageEncryption(admin, encryptFunc); } } } //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (devicePolicyManager .getStorageEncryptionStatus() != devicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED) { params.put("status", "200"); result.put("status", "true"); } else { params.put("status", "400"); result.put("status", "false"); } if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { // //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Storage Encrypted Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, params.toString()); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_MUTE)) { Log.d(TAG, "Muting Device"); try { Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { // //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Device Muted Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, params.toString()); } muteDevice(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_TRACK_CALLS)) { try { Map<String, String> params = new HashMap<String, String>(); params.put("code", CommonUtilities.OPERATION_TRACK_CALLS); params.put("msgID", token); params.put("status", "200"); params.put("data", conversations.getCallDetails().toString()); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); result.put("data", new JSONObject(conversations.getCallDetails().toString())); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, conversations.getCallDetails().toString(), null, null); } } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_TRACK_SMS)) { int MESSAGE_TYPE_INBOX = 1; int MESSAGE_TYPE_SENT = 2; JSONObject smsObj = new JSONObject(); try { smsObj.put("inbox", conversations.getSMS(MESSAGE_TYPE_INBOX)); smsObj.put("sent", conversations.getSMS(MESSAGE_TYPE_SENT)); Map<String, String> params = new HashMap<String, String>(); params.put("code", CommonUtilities.OPERATION_TRACK_SMS); params.put("msgID", token); params.put("status", "200"); params.put("data", smsObj.toString()); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); result.put("data", smsObj); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, smsObj.toString(), null, null); } } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_DATA_USAGE)) { JSONObject dataObj = new JSONObject(); try { Map<String, String> params = new HashMap<String, String>(); params.put("code", CommonUtilities.OPERATION_DATA_USAGE); params.put("msgID", token); params.put("status", "200"); params.put("data", deviceState.takeDataUsageSnapShot().toString()); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); result.put("data", new JSONObject(deviceState.takeDataUsageSnapShot().toString())); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, dataObj.toString(), null, null); } } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_STATUS)) { boolean encryptStatus = false; boolean passCodeStatus = false; try { if (devicePolicyManager .getStorageEncryptionStatus() != devicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED) { if (devicePolicyManager .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_ACTIVE || devicePolicyManager .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_ACTIVATING) { encryptStatus = true; } else { encryptStatus = false; } } if (devicePolicyManager.isActivePasswordSufficient()) { passCodeStatus = true; } else { passCodeStatus = false; } } catch (Exception ex) { ex.printStackTrace(); passCodeStatus = false; } JSONObject dataObj = new JSONObject(); try { dataObj.put("encryption", encryptStatus); dataObj.put("passcode", passCodeStatus); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); params.put("data", dataObj.toString()); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); result.put("data", dataObj); if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, dataObj.toString(), null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, params.toString()); } } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_WEBCLIP)) { String appUrl = ""; String title = ""; JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); Log.v("WEBCLIP DATA : ", data.toString()); appUrl = (String) jobj.get("identity"); title = (String) jobj.get("title"); Log.v("Web App URL : ", appUrl); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "WebClip created Successfully", null, null); } appList.createWebAppBookmark(appUrl, title); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_PASSWORD_POLICY)) { ComponentName demoDeviceAdmin = new ComponentName(context, WSO2DeviceAdminReceiver.class); int attempts, length, history, specialChars; String alphanumeric, complex; boolean b_alphanumeric, b_complex; long timout; Map<String, String> inparams = new HashMap<String, String>(); JSONParser jp = new JSONParser(); //for local notification resultArr.put(result); try { result.put("code", code_input); JSONObject jobj = new JSONObject(data_input); if (!jobj.isNull("maxFailedAttempts") && jobj.get("maxFailedAttempts") != null) { attempts = Integer.parseInt((String) jobj.get("maxFailedAttempts")); devicePolicyManager.setMaximumFailedPasswordsForWipe(demoDeviceAdmin, attempts); } if (!jobj.isNull("minLength") && jobj.get("minLength") != null) { length = Integer.parseInt((String) jobj.get("minLength")); devicePolicyManager.setPasswordMinimumLength(demoDeviceAdmin, length); } if (!jobj.isNull("pinHistory") && jobj.get("pinHistory") != null) { history = Integer.parseInt((String) jobj.get("pinHistory")); devicePolicyManager.setPasswordHistoryLength(demoDeviceAdmin, history); } if (!jobj.isNull("minComplexChars") && jobj.get("minComplexChars") != null) { specialChars = Integer.parseInt((String) jobj.get("minComplexChars")); devicePolicyManager.setPasswordMinimumSymbols(demoDeviceAdmin, specialChars); } if (!jobj.isNull("requireAlphanumeric") && jobj.get("requireAlphanumeric") != null) { if (jobj.get("requireAlphanumeric") instanceof String) { alphanumeric = (String) jobj.get("requireAlphanumeric"); if (alphanumeric.equals("true")) { devicePolicyManager.setPasswordQuality(demoDeviceAdmin, DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC); } } else if (jobj.get("requireAlphanumeric") instanceof Boolean) { b_alphanumeric = jobj.getBoolean("requireAlphanumeric"); if (b_alphanumeric) { devicePolicyManager.setPasswordQuality(demoDeviceAdmin, DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC); } } } if (!jobj.isNull("allowSimple") && jobj.get("allowSimple") != null) { if (jobj.get("allowSimple") instanceof String) { complex = (String) jobj.get("allowSimple"); if (!complex.equals("true")) { devicePolicyManager.setPasswordQuality(demoDeviceAdmin, DevicePolicyManager.PASSWORD_QUALITY_COMPLEX); } } else if (jobj.get("allowSimple") instanceof Boolean) { b_complex = jobj.getBoolean("allowSimple"); if (!b_complex) { devicePolicyManager.setPasswordQuality(demoDeviceAdmin, DevicePolicyManager.PASSWORD_QUALITY_COMPLEX); } } } if (!jobj.isNull("maxPINAgeInDays") && jobj.get("maxPINAgeInDays") != null) { int daysOfExp = Integer.parseInt((String) jobj.get("maxPINAgeInDays")); timout = (long) (daysOfExp * 24 * 60 * 60 * 1000); devicePolicyManager.setPasswordExpirationTimeout(demoDeviceAdmin, timout); } SharedPreferences mainPref = context.getSharedPreferences("com.mdm", Context.MODE_PRIVATE); String policy = mainPref.getString("policy", ""); inparams.put("code", code_input); inparams.put("msgID", token); inparams.put("status", "200"); result.put("status", "true"); } catch (Exception e) { // TODO Auto-generated catch block params.put("status", "400"); try { result.put("status", "false"); } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } e.printStackTrace(); } finally { try { if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Password Policies Successfully Set", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, inparams.toString()); } } catch (Exception ex) { ex.printStackTrace(); } } } else if (code_input.equals(CommonUtilities.OPERATION_EMAIL_CONFIGURATION)) { String emailname = "", emailtype = "", ic_username = "", ic_password = "", ic_hostname = ""; long timout; Map<String, String> inparams = new HashMap<String, String>(); //for local notification resultArr.put(result); JSONParser jp = new JSONParser(); try { result.put("code", code_input); JSONObject jobj = new JSONObject(data_input); if (!jobj.isNull("type") && jobj.get("type") != null) { emailtype = (String) jobj.get("type"); } if (!jobj.isNull("displayname") && jobj.get("displayname") != null) { emailname = (String) jobj.get("displayname"); } if (!jobj.isNull("username") && jobj.get("username") != null) { ic_username = (String) jobj.get("username"); } if (!jobj.isNull("password") && jobj.get("password") != null) { ic_password = (String) jobj.get("password"); } if (emailtype.trim().equals("GMAIL")) { ic_hostname = "imap.googlemail.com"; } else if (emailtype.equals("YAHOO")) { ic_hostname = ""; } else if (emailtype.equals("HOTMAIL")) { ic_hostname = ""; } inparams.put("code", code_input); inparams.put("msgID", token); inparams.put("status", "200"); result.put("status", "true"); } catch (Exception e) { // TODO Auto-generated catch block params.put("status", "400"); try { result.put("status", "false"); } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } e.printStackTrace(); } finally { try { if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Email Configured Successfully Set", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, inparams.toString()); } } catch (Exception ex) { ex.printStackTrace(); } } } else if (code_input.equals(CommonUtilities.OPERATION_INSTALL_GOOGLE_APP)) { String packageName = ""; JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); packageName = (String) jobj.get("package"); Log.v("Package Name : ", packageName); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Application installed Successfully", null, null); } Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setData(Uri.parse("market://details?id=" + packageName)); context.startActivity(intent); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_CHANGE_LOCK_CODE)) { ComponentName demoDeviceAdmin = new ComponentName(context, WSO2DeviceAdminReceiver.class); devicePolicyManager.setPasswordMinimumLength(demoDeviceAdmin, 3); String pass = ""; Map<String, String> inparams = new HashMap<String, String>(); JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); if (!jobj.isNull("password")) { pass = (String) jobj.get("password"); } inparams.put("code", code_input); inparams.put("msgID", token); inparams.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Lock code changed Successfully", null, null); } if (!pass.equals("")) { devicePolicyManager.resetPassword(pass, DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY); devicePolicyManager.lockNow(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Lock code changed Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, inparams.toString()); } } catch (Exception ex) { ex.printStackTrace(); } } } else if (code_input.equals(CommonUtilities.OPERATION_POLICY_BUNDLE)) { Map<String, String> params = new HashMap<String, String>(); try { params.put("code", code); params.put("msgID", policy_token); params.put("status", "200"); params.put("data", bundle_params.toString()); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); result.put("data", new JSONObject(bundle_params.toString())); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Bundle Executed Successfully", null, null); } } catch (Exception ex) { ex.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_POLICY_MONITOR)) { JSONArray sendjArray; JSONObject jobj = null; try { if (this.data != null && !this.data.trim().equals("")) jobj = new JSONObject(this.data); sendjArray = jobj.getJSONArray("policies"); int type = Integer.parseInt((String) jobj.get("type").toString().trim()); if (type != 1 && type != 2 && type != 3) { type = 1; } Log.e("PASSING MSG ID : ", policy_token); Log.e("PASSING CODE : ", code_input); Log.e("PASSING TYPE : ", String.valueOf(type)); PolicyTester tester = new PolicyTester(context, sendjArray, type, policy_token); //for local notification resultArr = tester.finalArray; } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_POLICY_REVOKE)) { try { Map<String, String> inparams = new HashMap<String, String>(); inparams.put("code", code_input); inparams.put("msgID", token); inparams.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Lock code changed Successfully", null, null); } revokePolicy(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_ENTERPRISE_WIPE_DATA)) { try { Map<String, String> inparams = new HashMap<String, String>(); inparams.put("code", code_input); inparams.put("msgID", token); inparams.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { // smsManager.sendTextMessage(recepient, null, // "Lock code changed Successfully", null, null); } enterpriseWipe = true; ServerUtils.clearAppData(context); Intent intent = new Intent(context, ServerDetails.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_BLACKLIST_APPS)) { ArrayList<PInfo> apps = appList.getInstalledApps(false); /* * false = * no system * packages */ JSONArray jsonArray = new JSONArray(); int max = apps.size(); if (max > 10) { //max = 10; } String apz = ""; try { JSONObject appsObj = new JSONObject(data_input); if (!appsObj.isNull("data")) { appsObj = (JSONObject) appsObj.get("data"); } // JSONObject appObj = (JSONObject) appsObj.get("data"); String identity = (String) appsObj.get("identity"); for (int j = 0; j < max; j++) { JSONObject jsonObj = new JSONObject(); try { jsonObj.put("name", apps.get(j).appname); jsonObj.put("package", apps.get(j).pname); if (identity.trim().equals(apps.get(j).pname)) { jsonObj.put("notviolated", false); jsonObj.put("package", apps.get(j).pname); } else { jsonObj.put("notviolated", true); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } jsonArray.put(jsonObj); } } catch (Exception ex) { ex.printStackTrace(); } JSONObject appsObj = new JSONObject(); try { appsObj.put("apps", jsonArray); Map<String, String> params = new HashMap<String, String>(); params.put("code", CommonUtilities.OPERATION_GET_APPLICATION_LIST); params.put("msgID", token); params.put("status", "200"); params.put("data", jsonArray.toString()); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); result.put("data", jsonArray); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, apz, null, null); } SharedPreferences mainPref = context.getSharedPreferences("com.mdm", Context.MODE_PRIVATE); String policy = mainPref.getString("policy", ""); if (policy != null && policy != "") { if (apz != null || !apz.trim().equals("")) { } } } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } return resultArr; }
From source file:org.wso2.emm.agent.services.Operation.java
@SuppressWarnings("static-access") @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) public JSONArray doTask(String code_in, String data_in, int req_mode) { Log.e("doTask", "code:" + code_in + "\n" + data_in); String data_input = data_in;/* w w w .j ava 2 s .c om*/ String code_input = code_in; String notification = ""; String ssid = ""; String password = ""; devicePolicyManager = (DevicePolicyManager) context.getApplicationContext() .getSystemService(Context.DEVICE_POLICY_SERVICE); appList = new ApplicationManager(context.getApplicationContext()); deviceInfo = new DeviceInfo(context); gps = new GPSTracker(context); smsManager = SmsManager.getDefault(); conversations = new TrackCallSMS(context); deviceState = new PhoneState(context); JSONArray resultArr = new JSONArray(); JSONObject result = new JSONObject(); if (code_input.equals(CommonUtilities.OPERATION_DEVICE_INFO)) { PhoneState phoneState = new PhoneState(context); JSONObject obj = new JSONObject(); JSONObject battery_obj = new JSONObject(); JSONObject inmemory_obj = new JSONObject(); JSONObject exmemory_obj = new JSONObject(); JSONObject location_obj = new JSONObject(); double latitude = 0; double longitude = 0; try { latitude = gps.getLatitude(); longitude = gps.getLongitude(); int batteryLevel = (int) Math.floor(phoneState.getBatteryLevel()); // int batteryLevel = 40; battery_obj.put("level", batteryLevel); inmemory_obj.put("total", deviceInfo.getTotalInternalMemorySize()); inmemory_obj.put("available", deviceInfo.getAvailableInternalMemorySize()); exmemory_obj.put("total", deviceInfo.getTotalExternalMemorySize()); exmemory_obj.put("available", deviceInfo.getAvailableExternalMemorySize()); location_obj.put("latitude", latitude); location_obj.put("longitude", longitude); obj.put("battery", battery_obj); obj.put("internal_memory", inmemory_obj); obj.put("external_memory", exmemory_obj); if (latitude != 0 && longitude != 0) { obj.put("location_obj", location_obj); } obj.put("operator", deviceInfo.getNetworkOperatorName()); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); params.put("data", obj.toString()); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); result.put("data", obj); Map<String, String> as = new HashMap<String, String>(); as.put("all", params.toString()); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { // ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Battery Level : " + phoneState.getBatteryLevel() + ", Total Memory : " + deviceInfo.formatSizeGB(deviceInfo.getTotalInternalMemorySize() + deviceInfo.getTotalExternalMemorySize()) + ", Available Memory : " + deviceInfo.formatSizeGB(deviceInfo.getAvailableInternalMemorySize() + deviceInfo.getAvailableExternalMemorySize()), null, null); } } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_DEVICE_LOCATION)) { LocationServices ls = new LocationServices(context); Log.v("Latitude", ls.getLatitude()); double latitude = 0; double longitude = 0; JSONObject obj = new JSONObject(); try { latitude = gps.getLatitude(); longitude = gps.getLongitude(); obj.put("latitude", latitude); obj.put("longitude", longitude); Map<String, String> params = new HashMap<String, String>(); params.put("code", CommonUtilities.OPERATION_DEVICE_LOCATION); params.put("msgID", token); params.put("status", "200"); params.put("data", obj.toString()); //for local notification\ resultArr.put(result); result.put("status", "true"); result.put("code", code_input); result.put("data", obj); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Longitude : " + longitude + ",Latitude : " + latitude, null, null); } } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_GET_APPLICATION_LIST)) { ArrayList<PInfo> apps = appList.getInstalledApps(false); /* * false = * no system * packages */ JSONArray jsonArray = new JSONArray(); int max = apps.size(); String apz = ""; Log.e("APP TOTAL : ", "" + max); for (int i = 0; i < max; i++) { JSONObject jsonObj = new JSONObject(); try { jsonObj.put("name", Uri.encode(apps.get(i).appname)); jsonObj.put("package", apps.get(i).pname); jsonObj.put("icon", apps.get(i).icon); apz += apps.get(i).appname + " ,"; } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } jsonArray.put(jsonObj); } JSONObject appsObj = new JSONObject(); try { //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); result.put("data", jsonArray); appsObj.put("apps", jsonArray); Map<String, String> params = new HashMap<String, String>(); params.put("code", CommonUtilities.OPERATION_GET_APPLICATION_LIST); params.put("msgID", token); params.put("status", "200"); //params.put("data", Uri.encode(jsonArray.toString())); Log.e("PASSING MSG ID : ", token); Log.e("PASSING CODE : ", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, apz, null, null); } } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_LOCK_DEVICE)) { Log.d(TAG, "Locking device now"); try { Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Device Locked Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, params.toString()); } devicePolicyManager.lockNow(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_WIPE_DATA)) { Log.d(TAG, "RESETing device now - all user data will be ERASED to factory settings"); String pin = null; SharedPreferences mainPref = context.getSharedPreferences("com.mdm", Context.MODE_PRIVATE); String pinSaved = mainPref.getString("pin", ""); try { JSONObject jobj = new JSONObject(data_input); pin = (String) jobj.get("pin"); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); //for local notification resultArr.put(result); if (pin.trim().equals(pinSaved.trim())) { params.put("status", "200"); result.put("status", "true"); } else { params.put("status", "400"); result.put("status", "false"); } result.put("code", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { if (pin.trim().equals(pinSaved.trim())) { smsManager.sendTextMessage(recepient, null, "Device Wiped Successfully", null, null); } else { smsManager.sendTextMessage(recepient, null, "Wrong PIN", null, null); } } if (pin.trim().equals(pinSaved.trim())) { Toast.makeText(context, "Device is being wiped", Toast.LENGTH_LONG).show(); try { Thread.sleep(4000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } devicePolicyManager.wipeData(ACTIVATION_REQUEST); } else { Toast.makeText(context, "Device wipe failed due to wrong PIN", Toast.LENGTH_LONG).show(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_CLEAR_PASSWORD)) { ComponentName demoDeviceAdmin = new ComponentName(context, WSO2DeviceAdminReceiver.class); try { Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Lock code cleared Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, params.toString()); } devicePolicyManager.setPasswordQuality(demoDeviceAdmin, DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED); devicePolicyManager.setPasswordMinimumLength(demoDeviceAdmin, 0); devicePolicyManager.resetPassword("", DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY); devicePolicyManager.lockNow(); devicePolicyManager.setPasswordQuality(demoDeviceAdmin, DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_NOTIFICATION)) { JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); if (jobj.get("notification").toString() != null || jobj.get("notification").toString().equals("")) { notification = jobj.get("notification").toString(); } else if (jobj.get("Notification").toString() != null || jobj.get("Notification").toString().equals("")) { notification = jobj.get("Notification").toString(); } else { notification = ""; } Log.v("Notification", notification); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Notification Receieved Successfully", null, null); } Intent intent = new Intent(context, AlertActivity.class); intent.putExtra("message", notification); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_WIFI)) { boolean wifistatus = false; JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); if (!jobj.isNull("ssid")) { ssid = (String) jobj.get("ssid"); } if (!jobj.isNull("password")) { password = (String) jobj.get("password"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } Map<String, String> inparams = new HashMap<String, String>(); inparams.put("code", code_input); inparams.put("msgID", token); WiFiConfig config = new WiFiConfig(context); try { //for local notification resultArr.put(result); result.put("code", code_input); wifistatus = config.saveWEPConfig(ssid, password); if (wifistatus) { inparams.put("status", "200"); result.put("status", "true"); } else { inparams.put("status", "400"); result.put("status", "false"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "WiFi Configured Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, inparams.toString()); } } } else if (code_input.equals(CommonUtilities.OPERATION_DISABLE_CAMERA)) { boolean camFunc = false; JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); if (!jobj.isNull("function") && jobj.get("function").toString().equalsIgnoreCase("enable")) { camFunc = false; } else if (!jobj.isNull("function") && jobj.get("function").toString().equalsIgnoreCase("disable")) { camFunc = true; } else if (!jobj.isNull("function")) { camFunc = Boolean.parseBoolean(jobj.get("function").toString()); } ComponentName cameraAdmin = new ComponentName(context, WSO2DeviceAdminReceiver.class); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); String cammode = "Disabled"; if (camFunc) { cammode = "Disabled"; } else { cammode = "Enabled"; } if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Camera " + cammode + " Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, params.toString()); } if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { devicePolicyManager.setCameraDisabled(cameraAdmin, camFunc); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_INSTALL_APPLICATION) || code_input.equals(CommonUtilities.OPERATION_INSTALL_APPLICATION_BUNDLE)) { try { //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (code_input.equals(CommonUtilities.OPERATION_INSTALL_APPLICATION)) { JSONObject jobj = new JSONObject(data_input); installApplication(jobj, code_input); } else if (code_input.equals(CommonUtilities.OPERATION_INSTALL_APPLICATION_BUNDLE)) { JSONArray jArray = null; jArray = new JSONArray(data_input); for (int i = 0; i < jArray.length(); i++) { JSONObject appObj = (JSONObject) jArray.getJSONObject(i); installApplication(appObj, code_input); } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_UNINSTALL_APPLICATION)) { String packageName = ""; JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); packageName = (String) jobj.get("identity"); Log.v("Package Name : ", packageName); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Application uninstalled Successfully", null, null); } appList.unInstallApplication(packageName); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_ENCRYPT_STORAGE)) { boolean encryptFunc = true; String pass = ""; JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); if (!jobj.isNull("function") && jobj.get("function").toString().equalsIgnoreCase("encrypt")) { encryptFunc = true; } else if (!jobj.isNull("function") && jobj.get("function").toString().equalsIgnoreCase("decrypt")) { encryptFunc = false; } else if (!jobj.isNull("function")) { encryptFunc = Boolean.parseBoolean(jobj.get("function").toString()); } ComponentName admin = new ComponentName(context, WSO2DeviceAdminReceiver.class); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); if (encryptFunc && devicePolicyManager .getStorageEncryptionStatus() != devicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED) { if (devicePolicyManager .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_INACTIVE) { if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { devicePolicyManager.setStorageEncryption(admin, encryptFunc); Intent intent = new Intent(DevicePolicyManager.ACTION_START_ENCRYPTION); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } } } else if (!encryptFunc && devicePolicyManager .getStorageEncryptionStatus() != devicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED) { if (devicePolicyManager .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_ACTIVE || devicePolicyManager .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_ACTIVATING) { if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { devicePolicyManager.setStorageEncryption(admin, encryptFunc); } } } //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (devicePolicyManager .getStorageEncryptionStatus() != devicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED) { params.put("status", "200"); result.put("status", "true"); } else { params.put("status", "400"); result.put("status", "false"); } if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { // //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Storage Encrypted Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, params.toString()); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_MUTE)) { Log.d(TAG, "Muting Device"); try { Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { // //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Device Muted Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, params.toString()); } muteDevice(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_TRACK_CALLS)) { try { Map<String, String> params = new HashMap<String, String>(); params.put("code", CommonUtilities.OPERATION_TRACK_CALLS); params.put("msgID", token); params.put("status", "200"); params.put("data", conversations.getCallDetails().toString()); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); result.put("data", new JSONObject(conversations.getCallDetails().toString())); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, conversations.getCallDetails().toString(), null, null); } } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_TRACK_SMS)) { int MESSAGE_TYPE_INBOX = 1; int MESSAGE_TYPE_SENT = 2; JSONObject smsObj = new JSONObject(); try { smsObj.put("inbox", conversations.getSMS(MESSAGE_TYPE_INBOX)); smsObj.put("sent", conversations.getSMS(MESSAGE_TYPE_SENT)); Map<String, String> params = new HashMap<String, String>(); params.put("code", CommonUtilities.OPERATION_TRACK_SMS); params.put("msgID", token); params.put("status", "200"); params.put("data", smsObj.toString()); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); result.put("data", smsObj); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, smsObj.toString(), null, null); } } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_DATA_USAGE)) { JSONObject dataObj = new JSONObject(); try { Map<String, String> params = new HashMap<String, String>(); params.put("code", CommonUtilities.OPERATION_DATA_USAGE); params.put("msgID", token); params.put("status", "200"); params.put("data", deviceState.takeDataUsageSnapShot().toString()); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); result.put("data", new JSONObject(deviceState.takeDataUsageSnapShot().toString())); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, dataObj.toString(), null, null); } } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_STATUS)) { boolean encryptStatus = false; boolean passCodeStatus = false; try { if (devicePolicyManager .getStorageEncryptionStatus() != devicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED) { if (devicePolicyManager .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_ACTIVE || devicePolicyManager .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_ACTIVATING) { encryptStatus = true; } else { encryptStatus = false; } } if (devicePolicyManager.isActivePasswordSufficient()) { passCodeStatus = true; } else { passCodeStatus = false; } } catch (Exception ex) { ex.printStackTrace(); passCodeStatus = false; } JSONObject dataObj = new JSONObject(); try { dataObj.put("encryption", encryptStatus); dataObj.put("passcode", passCodeStatus); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); params.put("data", dataObj.toString()); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); result.put("data", dataObj); if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, dataObj.toString(), null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, params.toString()); } } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_WEBCLIP)) { String appUrl = ""; String title = ""; JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); Log.v("WEBCLIP DATA : ", data.toString()); appUrl = (String) jobj.get("identity"); title = (String) jobj.get("title"); Log.v("Web App URL : ", appUrl); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "WebClip created Successfully", null, null); } appList.createWebAppBookmark(appUrl, title); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_PASSWORD_POLICY)) { ComponentName demoDeviceAdmin = new ComponentName(context, WSO2DeviceAdminReceiver.class); int attempts, length, history, specialChars; String alphanumeric, complex; boolean b_alphanumeric, b_complex; long timout; Map<String, String> inparams = new HashMap<String, String>(); JSONParser jp = new JSONParser(); //for local notification resultArr.put(result); try { result.put("code", code_input); JSONObject jobj = new JSONObject(data_input); if (!jobj.isNull("maxFailedAttempts") && jobj.get("maxFailedAttempts") != null) { attempts = Integer.parseInt((String) jobj.get("maxFailedAttempts")); devicePolicyManager.setMaximumFailedPasswordsForWipe(demoDeviceAdmin, attempts); } if (!jobj.isNull("minLength") && jobj.get("minLength") != null) { length = Integer.parseInt((String) jobj.get("minLength")); devicePolicyManager.setPasswordMinimumLength(demoDeviceAdmin, length); } if (!jobj.isNull("pinHistory") && jobj.get("pinHistory") != null) { history = Integer.parseInt((String) jobj.get("pinHistory")); devicePolicyManager.setPasswordHistoryLength(demoDeviceAdmin, history); } if (!jobj.isNull("minComplexChars") && jobj.get("minComplexChars") != null) { specialChars = Integer.parseInt((String) jobj.get("minComplexChars")); devicePolicyManager.setPasswordMinimumSymbols(demoDeviceAdmin, specialChars); } if (!jobj.isNull("requireAlphanumeric") && jobj.get("requireAlphanumeric") != null) { if (jobj.get("requireAlphanumeric") instanceof String) { alphanumeric = (String) jobj.get("requireAlphanumeric"); if (alphanumeric.equals("true")) { devicePolicyManager.setPasswordQuality(demoDeviceAdmin, DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC); } } else if (jobj.get("requireAlphanumeric") instanceof Boolean) { b_alphanumeric = jobj.getBoolean("requireAlphanumeric"); if (b_alphanumeric) { devicePolicyManager.setPasswordQuality(demoDeviceAdmin, DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC); } } } if (!jobj.isNull("allowSimple") && jobj.get("allowSimple") != null) { if (jobj.get("allowSimple") instanceof String) { complex = (String) jobj.get("allowSimple"); if (!complex.equals("true")) { devicePolicyManager.setPasswordQuality(demoDeviceAdmin, DevicePolicyManager.PASSWORD_QUALITY_COMPLEX); } } else if (jobj.get("allowSimple") instanceof Boolean) { b_complex = jobj.getBoolean("allowSimple"); if (!b_complex) { devicePolicyManager.setPasswordQuality(demoDeviceAdmin, DevicePolicyManager.PASSWORD_QUALITY_COMPLEX); } } } if (!jobj.isNull("maxPINAgeInDays") && jobj.get("maxPINAgeInDays") != null) { int daysOfExp = Integer.parseInt((String) jobj.get("maxPINAgeInDays")); timout = (long) (daysOfExp * 24 * 60 * 60 * 1000); devicePolicyManager.setPasswordExpirationTimeout(demoDeviceAdmin, timout); } SharedPreferences mainPref = context.getSharedPreferences("com.mdm", Context.MODE_PRIVATE); String policy = mainPref.getString("policy", ""); inparams.put("code", code_input); inparams.put("msgID", token); inparams.put("status", "200"); result.put("status", "true"); } catch (Exception e) { // TODO Auto-generated catch block params.put("status", "400"); try { result.put("status", "false"); } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } e.printStackTrace(); } finally { try { if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Password Policies Successfully Set", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, inparams.toString()); } } catch (Exception ex) { ex.printStackTrace(); } } } else if (code_input.equals(CommonUtilities.OPERATION_EMAIL_CONFIGURATION)) { String emailname = "", emailtype = "", ic_username = "", ic_password = "", ic_hostname = ""; long timout; Map<String, String> inparams = new HashMap<String, String>(); //for local notification resultArr.put(result); JSONParser jp = new JSONParser(); try { result.put("code", code_input); JSONObject jobj = new JSONObject(data_input); if (!jobj.isNull("type") && jobj.get("type") != null) { emailtype = (String) jobj.get("type"); } if (!jobj.isNull("displayname") && jobj.get("displayname") != null) { emailname = (String) jobj.get("displayname"); } if (!jobj.isNull("username") && jobj.get("username") != null) { ic_username = (String) jobj.get("username"); } if (!jobj.isNull("password") && jobj.get("password") != null) { ic_password = (String) jobj.get("password"); } if (emailtype.trim().equals("GMAIL")) { ic_hostname = "imap.googlemail.com"; } else if (emailtype.equals("YAHOO")) { ic_hostname = ""; } else if (emailtype.equals("HOTMAIL")) { ic_hostname = ""; } inparams.put("code", code_input); inparams.put("msgID", token); inparams.put("status", "200"); result.put("status", "true"); } catch (Exception e) { // TODO Auto-generated catch block params.put("status", "400"); try { result.put("status", "false"); } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } e.printStackTrace(); } finally { try { if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Email Configured Successfully Set", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, inparams.toString()); } } catch (Exception ex) { ex.printStackTrace(); } } } else if (code_input.equals(CommonUtilities.OPERATION_INSTALL_GOOGLE_APP)) { String packageName = ""; JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); packageName = (String) jobj.get("package"); Log.v("Package Name : ", packageName); Map<String, String> params = new HashMap<String, String>(); params.put("code", code_input); params.put("msgID", token); params.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Application installed Successfully", null, null); } Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setData(Uri.parse("market://details?id=" + packageName)); context.startActivity(intent); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_CHANGE_LOCK_CODE)) { ComponentName demoDeviceAdmin = new ComponentName(context, WSO2DeviceAdminReceiver.class); devicePolicyManager.setPasswordMinimumLength(demoDeviceAdmin, 3); String pass = ""; Map<String, String> inparams = new HashMap<String, String>(); JSONParser jp = new JSONParser(); try { JSONObject jobj = new JSONObject(data_input); if (!jobj.isNull("password")) { pass = (String) jobj.get("password"); } inparams.put("code", code_input); inparams.put("msgID", token); inparams.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Lock code changed Successfully", null, null); } if (!pass.equals("")) { devicePolicyManager.resetPassword(pass, DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY); devicePolicyManager.lockNow(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { if (req_mode == REQUEST_MODE_NORMAL) { if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Lock code changed Successfully", null, null); } } else { if (policy_count != 0) { policy_count++; } bundle_params.put("" + policy_count, inparams.toString()); } } catch (Exception ex) { ex.printStackTrace(); } } } else if (code_input.equals(CommonUtilities.OPERATION_POLICY_BUNDLE)) { Map<String, String> params = new HashMap<String, String>(); try { params.put("code", code); params.put("msgID", policy_token); params.put("status", "200"); params.put("data", bundle_params.toString()); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); result.put("data", new JSONObject(bundle_params.toString())); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Bundle Executed Successfully", null, null); } } catch (Exception ex) { ex.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_POLICY_MONITOR)) { JSONArray sendjArray; JSONObject jobj = null; try { if (this.data != null && !this.data.trim().equals("")) jobj = new JSONObject(this.data); sendjArray = jobj.getJSONArray("policies"); int type = Integer.parseInt((String) jobj.get("type").toString().trim()); if (type != 1 && type != 2 && type != 3) { type = 1; } Log.e("PASSING MSG ID : ", policy_token); Log.e("PASSING CODE : ", code_input); Log.e("PASSING TYPE : ", String.valueOf(type)); PolicyTester tester = new PolicyTester(context, sendjArray, type, policy_token); //for local notification resultArr = tester.finalArray; } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_POLICY_REVOKE)) { try { Map<String, String> inparams = new HashMap<String, String>(); inparams.put("code", code_input); inparams.put("msgID", token); inparams.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, "Lock code changed Successfully", null, null); } revokePolicy(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_ENTERPRISE_WIPE_DATA)) { try { Map<String, String> inparams = new HashMap<String, String>(); inparams.put("code", code_input); inparams.put("msgID", token); inparams.put("status", "200"); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(inparams, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { // smsManager.sendTextMessage(recepient, null, // "Lock code changed Successfully", null, null); } enterpriseWipe = true; ServerUtils.clearAppData(context); Intent intent = new Intent(context, SettingsActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (code_input.equals(CommonUtilities.OPERATION_BLACKLIST_APPS)) { ArrayList<PInfo> apps = appList.getInstalledApps(false); /* * false = * no system * packages */ JSONArray jsonArray = new JSONArray(); int max = apps.size(); if (max > 10) { //max = 10; } String apz = ""; try { JSONObject appsObj = new JSONObject(data_input); if (!appsObj.isNull("data")) { appsObj = (JSONObject) appsObj.get("data"); } // JSONObject appObj = (JSONObject) appsObj.get("data"); String identity = (String) appsObj.get("identity"); for (int j = 0; j < max; j++) { JSONObject jsonObj = new JSONObject(); try { jsonObj.put("name", apps.get(j).appname); jsonObj.put("package", apps.get(j).pname); if (identity.trim().equals(apps.get(j).pname)) { jsonObj.put("notviolated", false); jsonObj.put("package", apps.get(j).pname); } else { jsonObj.put("notviolated", true); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } jsonArray.put(jsonObj); } } catch (Exception ex) { ex.printStackTrace(); } JSONObject appsObj = new JSONObject(); try { appsObj.put("apps", jsonArray); Map<String, String> params = new HashMap<String, String>(); params.put("code", CommonUtilities.OPERATION_GET_APPLICATION_LIST); params.put("msgID", token); params.put("status", "200"); params.put("data", jsonArray.toString()); //for local notification resultArr.put(result); result.put("status", "true"); result.put("code", code_input); result.put("data", jsonArray); if (mode == CommonUtilities.MESSAGE_MODE_GCM) { //ServerUtilities.pushData(params, context); } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) { smsManager.sendTextMessage(recepient, null, apz, null, null); } SharedPreferences mainPref = context.getSharedPreferences("com.mdm", Context.MODE_PRIVATE); String policy = mainPref.getString("policy", ""); if (policy != null && policy != "") { if (apz != null || !apz.trim().equals("")) { } } } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } return resultArr; }