各位大侠,大家好
小弟想做个程序能够自由的控制锁键盘,但是我在看keyguardmanager时候很多问题都没看明白,并且在使用disableKeyguard ()方法时候,程序会报错。我想实现用程序控制系统是否锁键盘,我用的api没用错吧??
求助各位大侠帮助,谢谢了下面是我的代码:
public class hello extends Activity {
    /** Called when the activity is first created. */
  
    
    private KeyguardManager.KeyguardLock mKeyguardLock;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        KeyguardManager km = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
        mKeyguardLock = km.newKeyguardLock("phone");
        
        setContentView(R.layout.main);
        
      
    }
    @Override
    protected void onStart() {
        super.onStart();
        disableKeyguard(true);
    }    @Override
    public void onStop() {
        super.onStop();
        disableKeyguard(false);
    }    /**
     * Acquires a wake lock and prevents keyguard from enabling.
     */
    private void disableKeyguard(boolean disable) {
        if (disable) {
            mKeyguardLock.disableKeyguard();
        } else {
            mKeyguardLock.reenableKeyguard();
        }
    }
    
    
}

解决方案 »

  1.   

    权限不够吧,需在androidmanifest.xml中声明
    android.permission.DISABLE_KEYGUARD允许程序禁用键盘锁(Allows applications to disable the keyguard ) 试试
      

  2.   

    在AndroidManifest.xml里面声明要使用Keyguard的权限没有
      

  3.   

    hi 老兄,
       我已经这样子按你的要求加了permission,现在点run没有报异常,但是却发现不知道为什么只要加了permission这个程序就不能启动,我通过模拟器主动去点这个程序的图标,却显示:该软件未被安装。
       为什么会这样啊,不是每次run时候就自动安装吗?若是去掉permission就不会这样了
       还请哪位大侠解答一下啊
       我的AndroidManifest如下:   <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="test.hello"
          android:versionCode="1"
          android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name" android:permission="android.permission.DISABLE_KEYGUARD">
            <activity android:name=".hello"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>    </application>
        <uses-sdk android:minSdkVersion="3" /><uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses-permission>
    </manifest>      我到底哪里弄错了啊,我的天啊
      

  4.   

    LZ,我刚才试了下,没问题的,在手机上跑了下。你clean下,再build试试
    运行时,看看log中,有没有提示正常安装或者其他[2010-04-05 09:25:36 - Hello1] Android Launch!
    [2010-04-05 09:25:36 - Hello1] adb is running normally.
    [2010-04-05 09:25:36 - Hello1] Performing com.test.hello1.Hello1 activity launch
    [2010-04-05 09:25:36 - Hello1] Automatic Target Mode: using device 'P726U'
    [2010-04-05 09:25:36 - Hello1] Uploading Hello1.apk onto device 'P726U'
    [2010-04-05 09:25:37 - Hello1] Installing Hello1.apk...
    [2010-04-05 09:25:38 - Hello1] Success!
    [2010-04-05 09:25:38 - Hello1] Starting activity com.test.hello1.Hello1 on device 
    [2010-04-05 09:25:39 - Hello1] ActivityManager: Starting: Intent { cmp=com.test.hello1/.Hello1 }