- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
用户希望我的应用在使用后关闭屏幕。目前,我通过设备管理员权限和 DevicePolicyManager.lockNow()
实现了这一点,如果将安全设置设置为 PIN/Pattern/FaceUnlock 等,它就可以正常工作。
但是,如果使用 Slide/None,上述命令只会将用户带到主屏幕(或什么都不做),这是可以理解的,因为没有什么可“锁定”的。这种情况下有什么办法可以实现熄屏吗?如果重要的话,我的应用需要 SDK>=16。
所以我想我的问题是:应用程序如何可靠地关闭屏幕(我没有使用 wakelock
,我正在使用 WindowManager
- 在 onAttachedToWindow()
中标记 FLAG_TURN_SCREEN_ON
。
我的应用程序的“流程”是:
- Activity 在屏幕关闭时由 Intent 启动,显示在屏幕上的键盘锁/开关上方,并带有上述标志
- 用户主动关闭我的 Activity,我正在调用 lockNow()
和 finish()
,用户希望屏幕关闭。如果用户使用的是无/滑动锁,这将不起作用,而是显示用户的主屏幕
谢谢!
最佳答案
首先请参阅 here :
To control this policy, the device admin must have a "force-lock" tag in the "uses-policies" section of its meta-data.
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.
根据您获得的代码,here's很好地解释了您的情况可能出现的问题(当然,此处提供的任何代码都会有用!)。
我曾多次听说,调用两次代码 DevicePolicyManager.lockNow()
就可以解决问题 here's一种方法:
mDPM = (DevicePolicyManager)getApplicationContext().getSystemService("device_policy");
Handler handlerUI = new Handler();
handlerUI.postDelayed(new Runnable() {
@Override
public void run() {
mDPM.lockNow();
}
}, 200);
finish();
mDPM.lockNow();
Here我找到了同一事物的更详细版本:
Android DevicePolicyManager lockNow() problem
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();
}
}
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");
希望最后的解决方法能够正常工作。
干杯
关于android - DevicePolicyManager.lockNow();当安全设置设置为滑动/无时不会关闭屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18109740/
我这样使用它: devicePolicyManager .resetPasswordWithToken(
众所周知,Android ICS 在设置->安全->屏幕锁定中提供了人脸解锁选项来锁定屏幕。 有没有一种方法可以使用 DevicePolicyManager 以编程方式启用面部锁定,例如从 MDM 启
我有一个使用 DevicePolicyManager 方法的设备管理应用。在一个特定的触发器上,我使用 flag = 0 调用了 wipeData 方法(它的 2.2 HTC 令人难以置信)。设备重新
我正在开发一个具有多个 Android 用户支持的特权应用程序。每个用户都有自己的特权和限制。我将调用 addUserRestriction 方法来禁止用户访问外部存储。我使用以下代码来执行此操作:
我知道这不是第一次有人问这个问题,但我找不到任何解决方案。 这是给你们的一些代码: MainActivity.class: package com.fromscratch.aside; import
我正在尝试使用 enableSystemApp在使用设置为设备所有者模式的应用程序配置设备后激活默认系统应用程序的方法。 有两种方法可以做到这一点: 1) void enableSystemApp (
我是 Android 开发的新手,这就是我碰壁的原因。我希望应用程序作为服务运行,并监控 SMS。如果收到特定的 SMS 消息,它会锁定手机(就像锁定期已过期一样)。有点像遥控锁。 我使用 Devic
public final static void lockDevice() { try { if (devicePolicyManage
我想将我的应用程序置于固定屏幕模式。我需要用户的许可。 Permission Notice 但我并不总是想向用户显示此声明。 我在Android 5.0 Api文档中找到了setLockTaskPac
我知道如何使用 DevicePolicyManager 锁定设备.. boolean active = mDPM.isAdminActive(mDeviceAdminSample);
我来这里是因为我创建了一个 android 应用程序,它使用 .lockNow() 关闭屏幕(通过锁定它)。 这是我的代码: btnToSleep.setOnClickListener(new OnC
我已经编写了一个应用程序,如果启动它就锁定屏幕,基于 Device Administration Tutorial .到目前为止一切顺利,在我激活应用程序的设备管理后,我可以使用 DevicePoli
事情很简单:按一个图标,让手机进入待机状态。令人沮丧的部分来自电话:有时,屏幕会随机唤醒并显示锁定屏幕,而不是保持待机状态。我还没有找到触发此行为的任何条件,大概是 3-5 次尝试中的一次。该应用程序
我有一项服务,我希望提升该服务以将其启用为设备管理员, 直到现在,我从服务中启动了这种 UI 交互,例如 Intent intent2 = new Intent(); intent2.
新的 Android Lollipop API 提供了一对新的方法来获取和设置对其他应用程序的限制:DevicePolicyManager.getApplicationRestrictions和 De
用户希望我的应用在使用后关闭屏幕。目前,我通过设备管理员权限和 DevicePolicyManager.lockNow() 实现了这一点,如果将安全设置设置为 PIN/Pattern/FaceUnlo
Caused by java.lang.SecurityException: Permission Denial: isUserRunning() from pid=13462, uid=101010
我面临一个有趣的情况,但我不知道如何解决。当用户作为 Android for Work 用户首次登录我的应用程序时,我有义务确保该应用程序已注册为设备管理器。我通过调用 DevicePolicyMan
我正在尝试使用 DevicePolicyManager 在我的应用程序中隐藏设备上的 Facebook。现在,我已成功通过调用 setCameraDisabled 方法根据条件禁用相机。 现在我试图隐
我正在寻找一些示例代码,谢谢,虽然我可以阅读 api,但这对其他人帮助编写简单的代码将是一个很大的帮助。 最佳答案 取自 API 演示: // Password quality spinner
我是一名优秀的程序员,十分优秀!