2014-09-30 127 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); 
相關問題