Android DevicePolicyManager lockNow ()

Я новичок в разработке Android, поэтому я ударил стену. Я хочу, чтобы приложение работало как служба и отслеживало SMS. Если получено определенное SMS-сообщение, он блокирует телефон (как если бы период блокировки истек). Kinda как дистанционный замок.

Я использовал DevicePolicyManager для вызова lockNow() . Однако он вызывает ошибку прямо на стороне lockNow() .

Вот пример кода в Activity:

 public class SMSMessagingActivity extends Activity { /** Called when the activity is first created. */ public static DevicePolicyManager mDPM; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); } public static void LockNow(){ mDPM.lockNow(); } } 

В качестве ссылочного примера я просмотрел http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.html .

Может кто-нибудь мне помочь? Покажите мне, что случилось с моим кодом? Нужно ли мне что-то настраивать для включения административных прав на эмулятор или устройство?

Благодаря!

Вот что из документов:

Администратор вызывающего устройства должен запросить USES_POLICY_FORCE_LOCK, чтобы иметь возможность вызвать этот метод; Если это не так, будет выведено исключение безопасности.

Поэтому в вашем oncreate вы должны сделать следующее:

 ComponentName devAdminReceiver; // this would have been declared in your class body // then in your onCreate mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); devAdminReceiver = new ComponentName(context, deviceAdminReceiver.class); //then in your onResume boolean admin = mDPM.isAdminActive(devAdminReceiver); if (admin) mDPM.lockNow(); else Log.i(tag,"Not an admin"); 

С другой стороны, ваш примерный код – это действие.
Это, и вы должны просто использовать широковещательный приемник для реализации всего и мониторинга смс.

Вот пример API для получения смс:

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/os/SmsMessageReceiver.html