Android DevicePolicyManager lockNow () - PullRequest
4 голосов
/ 03 июля 2011

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

Я использовал 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 какконтрольный пример.

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

Спасибо!

1 Ответ

3 голосов
/ 27 августа 2011

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

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

Следовательно, вы должны сделать следующее в вашем файле:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...