From d7d0fb67cf4d7b0ed17a1870d24804aaff886c26 Mon Sep 17 00:00:00 2001 From: Malaka Mahanama Date: Fri, 3 Jul 2015 12:34:27 -0500 Subject: [PATCH] added the basic wiring for user to enable admin application --- res/values/strings.xml | 1 + res/xml/ng_device_admin.xml | 6 +++--- src/com/nodegrid/android/manager/Main.java | 21 ++++++++++++++++++++- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 8baa874..27c5f68 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -8,5 +8,6 @@ Device Administration The device admin has been enabled The device admin has been disabled + NodeGrid will be a device administrator to fullfil features of this application. diff --git a/res/xml/ng_device_admin.xml b/res/xml/ng_device_admin.xml index 0c148db..900c5b9 100644 --- a/res/xml/ng_device_admin.xml +++ b/res/xml/ng_device_admin.xml @@ -3,13 +3,13 @@ the device administrator, as parsed by the DeviceAdminInfo class --> - + + \ No newline at end of file diff --git a/src/com/nodegrid/android/manager/Main.java b/src/com/nodegrid/android/manager/Main.java index 5531eab..aea514f 100644 --- a/src/com/nodegrid/android/manager/Main.java +++ b/src/com/nodegrid/android/manager/Main.java @@ -1,16 +1,35 @@ package com.nodegrid.android.manager; -import android.support.v7.app.ActionBarActivity; +import android.app.admin.DevicePolicyManager; +import android.content.ComponentName; +import android.content.Intent; import android.os.Bundle; +import android.support.v7.app.ActionBarActivity; import android.view.Menu; import android.view.MenuItem; public class Main extends ActionBarActivity { + + private static final int REQUEST_CODE_ENABLE_ADMIN = 1; + + DevicePolicyManager mDPM; + ComponentName mDeviceAdmin; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + + //The DeviceAdminReceiver should receive the intent below to administer the device. + mDeviceAdmin = new ComponentName(this, PolicyHandler.NGDeviceAdminReceiver.class); + + //this intent prompts the user to allow the app to administer the device + //the user has the choice to accept or decline. + Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); + intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdmin); + intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, R.string.ng_admin_permission_message); + startActivityForResult(intent, REQUEST_CODE_ENABLE_ADMIN); + } @Override