2014-09-30 113 views
-2

我想创建应用程序,当我点击我的应用程序图标,屏幕自动锁定,请任何人帮助我如何做到这一点?Android屏幕锁定,当只需点击应用程序图标

我很多谷歌搜索,但没有找到这样的,所以请帮助我做到这一点。

在这个我点击app_launcher图标和直接手机屏幕锁定。

+0

...我想你有widget..if试试这个你点击该小部件的屏幕将被锁定。 – Mani 2014-09-30 05:42:45

+0

你给我任何相关的例子吗? – 2014-09-30 05:51:36

+0

你可以参考http://stackoverflow.com/questions/14352648/how-to-lock-unlock-screen-programmatically – 2014-09-30 05:54:40

回答

1

试试这个代码(锁屏和屏幕关闭):

public DevicePolicyManager deviceAdminPolicyManager = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); 
public ComponentName deviceAdminComponentName = new ComponentName(this, DeviceAdmin.class); 

deviceAdminPolicyManager.lockNow(); 
PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); 
if(powerManager.isScreenOn()) powerManager.goToSleep(System.currentTimeMillis() + 1000L); 

您的应用程序必须通过设置添加为设备管理员 - 安全 - 设备administartors。

也加入清单:

<uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> 
<uses-permission android:name="android.permission.DEVICE_POWER"/> <!-- for screen off and on --> 
<uses-permission android:name="android.permission.WAKE_LOCK"/> 

<receiver android:label="@string/label" android:name="com.package$DeviceAdmin" android:permission="android.permission.BIND_DEVICE_ADMIN"> 
    <meta-data android:name="android.app.device_admin" android:resource="@xml/device_admin" /> 
    <intent-filter> 
    <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> 
    </intent-filter> 
</receiver> 

和:

public static class DeviceAdmin extends DeviceAdminReceiver 
{ 
    public CharSequence onDisableRequested(Context paramContext, Intent paramIntent) { return ""; } 
    public void onDisabled(Context paramContext, Intent paramIntent) {} 
    public void onEnabled(Context paramContext, Intent paramIntent) {} 
    public void onPasswordChanged(Context paramContext, Intent paramIntent) {} 
} 

DeviceAdmin.xml

<?xml version="1.0" encoding="utf-8"?> 
<device-admin xmlns:android="http://schemas.android.com/apk/res/android"> 
<uses-policies> 
    <force-lock /> 
</uses-policies> 
</device-admin> 
+0

什么是进入** device_admin ** xml文件和权限** <使用权限android:name =“android.permission.DEVICE_POWER”/> **只允许系统应用程序 – 2014-09-30 06:29:17

+0

我添加deviceadmin xml文件代码。尝试使用DEVICE_POWER权限忽略警告启动应用程序。别忘了在Device Admin – 2014-09-30 06:33:02

+0

中添加你的应用程序,在DeviceAdmin类的onDisabled()和onEnable()中写入任何东西? – 2014-09-30 07:25:02

0
//For Unlock 

WindowManager winManager = Context.getSystemService(Context.WINDOW_SERVICE);  
Window window = getWindow();  
window.addFlags(winManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 

OR 

    KeyguardManager km = (KeyguardManager) context 
    .getSystemService(Context.KEYGUARD_SERVICE); 
    final KeyguardManager.KeyguardLock kl = km 
    .newKeyguardLock("MyKeyguardLock"); 
    kl.disableKeyguard(); 

    PowerManager pm = (PowerManager) context 
    .getSystemService(Context.POWER_SERVICE); 
    WakeLock wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK 
    | PowerManager.ACQUIRE_CAUSES_WAKEUP 
    | PowerManager.ON_AFTER_RELEASE, "MyWakeLock"); 
    wakeLock.acquire(); 


//Lock device 

DevicePolicyManager myDPM;  
myDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); 
相关问题