java - 安卓 DevicePolicyManager lockNow()

标签 java android sms

我是 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作为引用示例。

谁能帮帮我?告诉我我的代码有什么问题?我是否必须进行一些调整才能在模拟器或设备上启用管理权限?

谢谢!

最佳答案

这是文档中的一些内容:

The calling device admin must have requested USES_POLICY_FORCE_LOCK to be able to call this method; if it has not, a security exception will be thrown.

因此,您应该在您的 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");

附带说明一下,您的示例代码是一个 Activity 。
那,你应该只使用广播接收器来实现一切并监控短信。

这是一个接收短信的 API 示例:

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

关于java - 安卓 DevicePolicyManager lockNow(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6560426/

相关文章:

java - 如何优化我当前的 getMax 方法以检索数组中的最大值?

Java 8 : Kill/Stop a thread after certain period of time

java - Kerberos 如何获取主体或客户端名称?

java - 无法通过启用 proguard+using parse sdk 1.8.2 导出 Android 应用程序

android - Firebase 分析 AppMeasurement 未启用

vb.net - 使用VB.NET发送短信

java - 如何更改 hashmap 负载因子

android - 使用 cancel() 从 AlarmManager 删除警报 - Android

android - 如何在android中安排稍后发送的短信?

android - HTML SMS 消息正文。 & 符号之后的所有内容都消失了