gpt4 book ai didi

java - 安卓 DevicePolicyManager lockNow()

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:22 25 4
gpt4 key购买 nike

我是 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com