如何知道我的应用程序是否管理员

时间:2013-07-30 09:32:32

标签: android android-layout service broadcastreceiver admin

我是创作应用,可让my device as a admin工作很棒

但我想在Application uninstall from device.

触发一些消息
  1. 当用户remove from admin

  2. 如何知道我的app Device admin is checked or not?

  3. 我正在使用android内置的管理应用程序演示。

    请给我一些想法。

1 个答案:

答案 0 :(得分:12)

您必须扩展DeviceAdminReceiver和

public class DeviceAdmin extends DeviceAdminReceiver {

    @Override
    public void onEnabled(Context context, Intent intent) {
        Log.i(this, "admin_receiver_status_enabled");
        // admin rights
        App.getPreferences().edit().putBoolean(App.ADMIN_ENABLED, true).commit(); //App.getPreferences() returns the sharedPreferences

    }

    @Override
    public CharSequence onDisableRequested(Context context, Intent intent) {
        return "admin_receiver_status_disable_warning";
    }

    @Override
    public void onDisabled(Context context, Intent intent) {
        Log.info(this, "admin_receiver_status_disabled");
        // admin rights removed
        App.getPreferences().edit().putBoolean(App.ADMIN_ENABLED, false).commit(); //App.getPreferences() returns the sharedPreferences
    }
}

您应用中的任何位置:

DevicePolicyManager mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName mAdminName = new ComponentName(this, DeviceAdmin.class); 

if(mDPM != null &&mDPM.isAdminActive(mAdminName)) {
    // admin active
}