同志们,问大家一个问题:在应用中,如何通过代码把屏幕变黑,就是那种短按关机键的效果。散尽分求答案。

解决方案 »

  1.   

    楼主要的是锁屏吗?package com.microdu.lockscreen;import android.app.Activity;
    import android.app.admin.DeviceAdminReceiver;
    import android.app.admin.DevicePolicyManager;
    import android.content.ComponentName;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;public class LockScreen extends DeviceAdminReceiver {
            static final int RESULT_ENABLE = 1;        public static class Controller extends Activity {                DevicePolicyManager mDPM;
                    ComponentName mDeviceAdminSample;                @Override
                    protected void onCreate(Bundle savedInstanceState) {
                            super.onCreate(savedInstanceState);
                            
                            //首先我们要获得android设备管理代理
                            mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
                            
                            //LockScreen 继承自 DeviceAdminReceiver
                            mDeviceAdminSample = new ComponentName(Controller.this,
                                            LockScreen.class);
                            //得到当前设备管理器有没有激活
                            boolean active = mDPM.isAdminActive(mDeviceAdminSample);
                            if (!active) { 
                                    //如果没有激活的话,就去提示用户激活(第一次运行程序时)
                                    getAdmin();
                            }else{
                                    //如果已经激活的话,就执行立即锁屏
                                    mDPM.lockNow();
                            }
                            
                    //        killMyself ,锁屏之后就立即kill掉我们的Activity,避免资源的浪费;
                            android.os.Process.killProcess(android.os.Process.myPid()); 
                    }        public void getAdmin() {
                // Launch the activity to have the user enable our admin.
                Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
                intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
                        mDeviceAdminSample);
                intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                        "欢迎您的使用!");
                startActivityForResult(intent, RESULT_ENABLE);
            }
                    
            }
    }manifest<?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        android:versionCode="1"
        android:versionName="1.0" package="com.microdu.lockscreen">
        <uses-sdk android:minSdkVersion="8" />    <application android:label="@string/app_name"
                android:icon="@drawable/icon" >        <activity android:name="com.microdu.lockscreen.LockScreen$Controller" android:theme="@android:style/Theme.Translucent">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.DEFAULT" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <receiver android:name="com.microdu.lockscreen.LockScreen"
                    android:permission="android.permission.BIND_DEVICE_ADMIN">
                <meta-data android:name="android.app.device_admin"
                           android:resource="@xml/device_admin_sample" />
                <intent-filter>
                    <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
                </intent-filter>
            </receiver>
            
        </application>
    </manifest>
      

  2.   

    楼上的哥们,我想要的结果是:
    比如我又一个button,我点一下,然后就黑屏,就跟那个一键黑屏一样,
    在按开机键(或者其他)就能点亮屏幕,默认进到锁屏,之后都是默认行为了
      

  3.   

    http://blog.csdn.net/etzmico/article/details/6848061
    这就是你要的