2012-06-11 88 views
2

我正在使用以下代码来启动要求用户授予应用程序设备管理员状态的活动。Android:无法启动服务管理员状态授予活动

 mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); 
     try { 
      mDeviceAdminSample = new ComponentName(this, WatchDogAdmin.class); 
     } catch (Exception ex) { 
      // TODO Auto-generated catch block 
      Toast.makeText(this, ex.getMessage(), Toast.LENGTH_LONG).show(); 
     } 

     Intent intent2 = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); 
//  Intent intent2 = new Intent(this, ShuntActivity.class); 
     intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     intent2.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample); 
     intent2.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "Device admin rights are required for this application to work correctly."); 
//  startActivityForResult(intent, RESULT_ENABLE); 
     startActivity(intent2); 

我在做什么错?没有错误,活动根本不会启动。

+0

尽量摆脱FLAG_ACTIVITY_NEW_TASK'的'。 – CommonsWare

+0

在应用程序崩溃时执行结果。你提出这个建议的理由是什么? –

+0

否则,你的代码似乎与我使用'DevicePolicyManager'完成的一些事情是一致的,这就是我问的原因。 – CommonsWare

回答

0

尝试删除线,

intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
0

确保WatchDogAdmin是接收器,并尝试startActivityForResult(intent2, 1);