2013-08-19 1 views
0

Я могу создать Activity, который использует API DevicePolicyManager.Как запустить Device Policy Manager из службы

Учебные пособия показывают, что мне нужно использовать его следующие моды:

 if (!mDPM.isAdminActive(mAdminName)) { 
     Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); 
    intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mAdminName); 
    intent.putExtra("wipe-data", DeviceAdminInfo.USES_POLICY_WIPE_DATA);   
    startActivityForResult(intent, REQUEST_ENABLE); 

} 
else { 

mDPM.wipeData(0); 

} 

Однако я хотел бы, чтобы работать внутри службы. Но я не могу назвать

startActivityForResult 

изнутри службы.

Итак, какой был бы лучший подход или стратегия для меня попробовать?

+0

Либо «разрешить администратор устройства» из пользовательского интерфейса, либо использовать «startActivity» –

+0

http://stackoverflow.com/a/17297711/581159 это может вам помочь ... – Zeba

ответ

1

Единственная причина, по которой вам нужно позвонить startActivityForResult(), - это то, что ваше приложение в настоящее время не настроено как администратор устройства, чтобы привести пользователя к настройке для вас. Следовательно, поместите эту часть своей логики в свой пользовательский интерфейс.

Ваше обслуживание само по себе просто пропустит что-либо, если isAdminActive() вернет false.

+0

Спасибо CommonsWare guy! – drlobo